У меня есть два стола: игрушки и игры.
+--------------------+------------------+
| 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.
По сути, я хочу получить сумму этих двух запросов:
SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900;
SELECT COUNT(*) from Games WHERE little_kid1 = 900
OR little_kid2 = 900
OR little_kid3 = 900;
Можно ли получить это в одном запросе SQL? Очевидно, что я могу суммировать их программно, но это менее желательно.
(Я понимаю, что надуманный пример делает схему неэффективной. Давайте предположим, что мы не можем изменить схему.)