私は何年もの間単純なMySQLコマンドを使用していて、もっと複雑なコマンドを使いたいと思っていました。古いコードの一部を書き直す作業を引き受けましたが、ここで何が起こっているのかわかりません。
2つのテーブルを1つの結果にマージしようとしていますが、2番目のテーブルは「カウント」のみを提供します。
TABLE customers:
customerID, name, boxID
TABLE codes:
boxID, code, retrieved
私が欲しいのは、SELECT * FROMの顧客から得たものとまったく同じですが、boxIDが同じであるコードテーブル内のすべてのコードのcount()を持つ追加の列が必要です。
これは私の現在のクエリです。
SELECT customers.*, count(codes.code) as codesused
FROM customers
INNER JOIN codes
ON customers.boxID = codes.boxID
WHERE codes.retrieved = 1
これは、「WHEREcustomers.customerID='x'」を追加するまでNULLになります。上記のコードから欲しいものが得られない理由を誰かが説明できますか?