我有两张桌子:玩具和游戏。
+--------------------+------------------+
| 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 参与的玩具和游戏的总数。
基本上,我想要这两个查询的总和:
从 little_kid_id = 900 的玩具中选择计数(*); 从游戏中选择 COUNT(*) little_kid1 = 900 或 little_kid2 = 900 或 little_kid3 = 900;
是否有可能在单个 SQL 查询中得到它?显然,我可以以编程方式对它们求和,但这不太理想。
(我意识到这个人为的例子使模式看起来效率低下。假设我们不能改变模式。)