これが可能かどうかわかりません。私は1つのテーブルmembers
と2番目のテーブルtransactions
を持っています。1つのテーブルからデータを取得し、別のテーブルからデータを取得する
members
テーブルからメンバーの名前を取得する必要がありますが、メンバーが別のテーブルから行ったトランザクションの数もカウントする必要があります。これはJOIN文でも可能ですか、2つの文を書く必要がありますか?
SELECT
m.first_name,
m.last_name,
COUNT(t.giver_id),
COUNT(t.getter_id)
FROM
members AS m
JOIN
transactions AS t
ON
m.id = t.giver_id
WHERE
m.id = $i
私はそれはメンバーがすべての取引を行っていないので、transactions
テーブルには表示されません可能だということを追加する必要があります。
このコードを実行すると、すべてのNULL
列が返されます。 EXPLAIN
ステートメントを追加すると、MySqlは "constテーブルを読み込んだ後に気付かれなかった"と言います。
これは可能ですか?もしそうなら、私は間違って何をしていますか?前もって感謝します。
EDIT: サンプルデータ構造と予想される出力:
members
id | first_name | last_name
_______________________________
1 | Bill | Smith
2 | Joe | Jones
transactions table
id | giver_id | getter_id | status
________________________________________
1 | 1 | 2 | complete
2 | 1 | 2 | complete
だから私のクエリは返す必要があります実行している:
1 | Bill | Smith | 2 | 0
2 | Joe | Jones | 0 | 2
ありがとうございました。私はこれを試しましたが、 't.getter_id'を' t.giver_id'と同じ値として間違って数えます。 't.getter_id'列と' t.giver_id'列の両方でカウントできるように 'ON'文を修正する必要がありますか? – freeworlder
質問を修正し、データサンプルに予想される出力を提供できますか? –
サンプルデータと期待される出力が追加されました。 – freeworlder