Toys と Games の 2 つのテーブルがあります。
+--------------------+------------------+
| Field | Type |
+--------------------+------------------+
| toy_id | int(10) unsigned |
| little_kid_id | int(10) unsigned |
+--------------------+------------------+
+--------------------+------------------+
| Field | Type |
+--------------------+------------------+
| game_id | int(10) unsigned |
| little_kid1 | int(10) unsigned |
| little_kid2 | int(10) unsigned |
| little_kid3 | int(10) unsigned |
+--------------------+------------------+
小さな子供は複数のおもちゃを持つことができます。小さな子供は一度に複数のゲームに参加できます。
little_kid が関わっているおもちゃとゲームの合計数を取得するクエリが必要です。
基本的に、次の 2 つのクエリの合計が必要です。
SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900; ゲーム WHERE little_kid1 = 900 から COUNT(*) を選択 または little_kid2 = 900 または little_kid3 = 900;
これを単一の SQL クエリで取得することは可能ですか? 明らかに、プログラムでそれらを合計できますが、それはあまり望ましくありません。
(不自然な例ではスキーマが非効率に見えることに気づきました。スキーマを変更できないと仮定しましょう。)