Comment puis-je ajouter deux count(*) résultats de l'ensemble sur deux tables différentes?

J'ai deux tables: des Jouets et des Jeux.

+--------------------+------------------+
| 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 |
+--------------------+------------------+

Un petit enfant peut avoir plusieurs jouets.
Un petit enfant peut participer à plusieurs jeux à la fois.

Je veux une requête qui va me donner le nombre total de jouets + jeux qui un little_kid est impliqué.

Fondamentalement, je veux que la somme de ces deux requêtes:

SELECT COUNT(*) à PARTIR de Jouets OÙ little_kid_id = 900; 
SELECT COUNT(*) from Jeux OÙ little_kid1 = 900 
OU little_kid2 = 900 
OU little_kid3 = 900; 

Est-il possible d'obtenir cela dans une seule requête SQL? Évidemment, je peux résumer par programmation, mais c'est moins souhaitable.

(Je me rends compte que l'exemple artificiel rend le schéma look ineffecient. Supposons que nous ne pouvons pas changer le schéma.)

InformationsquelleAutor Runcible | 2009-05-05