Wyszukiwanie liczb z jednego zbioru w drugim zbiorze.

PROBLEM:

jak napisać zapytanie SQL do bazy żeby zliczył ile razy liczby z jednego zbioru (tabeli) wystąpiły w drugim zbiorze (tabeli)?

SZCZEGÓŁY:
np. mamy dwie tabele o nazwach „tab1” i „tab2„. W tabeli „tab1” w kolumnie „liczba” znajdują się wartości 1,12,24,48 (np. jest to numer zamówienia). W tabeli „tab2” są cztery kolumny nazwijmy je „kol1„, „kol2„, „kol3” i „kol4„. W każdej z tych kolumn może wystąpić numer zamówienia z  tabeli „tab1” z kolumny „liczba„.

Jak napisać zapytanie SQL żeby zliczył ile razy liczby/numer zamówień z tabeli „tab1” wystąpiły w całej tabeli „tab2” ?

 

ROZWIĄZANIE:

SELECT
tab1.liczba
,COUNT(*)

FROM
tab1 LEFT OUTER JOIN tab2 ON tab1.liczba = tab2.kol1
OR tab1.liczba = tab2.kol2
OR tab1.liczba = tab2.kol3
OR tab1.liczba = tab2.kol4

GROUP BY
tab1.liczba