SQL выбор множественности элементов в объединении

Я выполняю несколько выборок и хочу вычислить перекрытие. Пример:

SELECT id FROM foo WHERE ...
SELECT id FROM bar WHERE ...
SELECT id FROM baz WHERE ...

Назовите эти запросы a, b и c соответственно. Предположим, что a дает (1,2,3,4,5), b дает (1,3,5), а c дает (4,5,6). Я хочу взять их объединение и посчитать кратности. В приведенном выше примере я ищу результат

id | multiplicity
-----------------
1  | 2
2  | 1
3  | 2
4  | 2
5  | 3
6  | 1

Как мне сделать это в MySQL5 в рамках одного запроса? (Части a, b и c могут быть простыми выборками или хранимыми процедурами).

6
задан spraff 24 February 2012 в 17:17
поделиться