Är det här bättre (Testkört i Access 2007 och ger enbart 1 tuppel med värdet 7)?
Kod:
SELECT pid
FROM (SELECT pid, count(*) as antal
FROM Tabell2
group by pid)
where antal=(select count(*) from tabell1);
Vi grupperar alla pidarna och räknar hur många olika förekomster det finns, finns alla med borde det bli lika många som count(*) på CIDtabellen....
Även detta är löst med en enkel sub-select som vi lägger i FROM-klausulen så att vi skapar en "virtuell" tabell, vill man kan man hitta på ett alias för den men det var inte nödvändigt i detta relativt enkla fall.
Sub-selecten i WHERE-klausulen är bara till för att räkna raderna i tabell1.
Jag har förutsatt att PID och CID är delar av primärnyckeln i tabell2 (är detta riktigt?) för då är exemplet med data fel.