データベースに4つのテーブルがあり、そのうち2つから情報を抽出しています。最初のものはイベントテーブルで、EventID、EventNameなど、およびEventHostIDをリストしています。そして私はこのようになります私の出欠表を、持っている:COUNT()操作(条件付き)を列として他のSELECT文に結合する
それはその主キーとしてイベントやユーザテーブルからIDからのIDを持っており、この表から、私は見つけることができます人に招待されている、多分、イベントに行くか行く。次のように
SELECT EventID, EventName, EventLocation, StartDate FROM events WHERE EventHostID = 0
SELECT COUNT(UserID) AS Invited FROM attendance WHERE EventID = "1" AND EvStatus = "invit"
SELECT COUNT(UserID) AS Maybe FROM attendance WHERE EventID = "1" AND EvStatus = "maybe"
SELECT COUNT(UserID) AS Going FROM attendance WHERE EventID = "1" AND EvStatus = "going"
最初のCOUNT文の結果がである:
私は私が欲しい情報を抽出するために4つのSQL文を持って
すなわち、招待されているどのように多くの人々の数Invited table。他の2つのカウントステートメントはこの形式です。
私が望むのは、これらの4つのSQL文の結果を組み合わせることですが、構文をどのように構築するかはわかりません。私はあなただけ例えば、単純なサブクエリが必要だと思う
-----------------------------------------------------------------------------
| EventID | EventName | EventLocation | StartDate | Invited | Maybe | Going |
-----------------------------------------------------------------------------
| 0 | Party | Dave's house | 08/08/17 | 20 | 5 | 17 |
-----------------------------------------------------------------------------
| 2 | Wedding | Castle | 02/02/19 | 25 | 20 | 10 |
-----------------------------------------------------------------------------
ピボット –
を使用する必要がある場合は、DISTINCTを使用することも重要です。これは 'CASE'ステートメントでも解決できます。例については、この記事を参照してください:[using-sql-count-in-a-case-statement](https://stackoverflow.com/a/17975288/8376046) – ewolden
[複数の別の条件を使用して同じテーブル](https://stackoverflow.com/questions/2654750/multiple-aggregate-functions-in-one-sql-query-from-the-same-table-using-differen) – JeffUK