2016-11-26 2 views
0

Ich bin in zwei verschiedenen Tabellen mit einem ausgewählten Arbeiten, die Übereinstimmung von Gruppe Referenz-ID sein sollte, wie: Tabelle 1 und Tabelle 2:HAVING COUNT anderen COUNT Wert empfängt

+-----+-----+------------+ +-----+------+ 
| gid | tid | created | | gid | nid | 
+-----+-----+------------+ +-----+------+ 
| 0 | 816 | 1480002041 | | 0 | 1123 | 
| 1 | 731 | 1480003932 | | 0 | 1124 | 
| 1 | 736 | 1480003932 | | 1 | 1125 | 
| 2 | 746 | 1480003932 | | 1 | 1126 | 
+-----+-----+------------+ | 1 | 1123 | 
          | 2 | 1124 | 
          | 1 | 1129 | 
          +-----+------+ 

Ich muß Get nid Werte von Tabelle 2, die eine genaue Gruppenübereinstimmung mit der Gruppe Tabelle 1 haben. Die Referenz für die Suche in Tabelle 1 ist tid. Ich glaube, dass die SQL etwas wie das sein würde:

SELECT t1.nid 
FROM table1 t1 
INNER JOIN 
(
    SELECT gid 
    FROM table2 
    WHERE tid IN (731, 736, 746, 751) 
    GROUP BY gid 
    HAVING COUNT(DISTINCT tid) = 4 
) t2 ON t1.gid = t2.gid; 

Aber wie kann ich das genau count hart number 4 codiert zu ersetzen?

Antwort

0
SELECT t2.nid 
    FROM table1 t1 
INNER JOIN 
    table2 t2 
    ON t1.gid = t2.gid; 
WHERE t2.tid IN (731, 736, 746, 751) 
    GROUP BY t2.gid 
+0

Danke Roman Che, aber funktioniert nicht wie erwartet. Die Ergebnisse sollten nichts zurückgeben, wenn 'tid' Werte nicht mit 'gid' übereinstimmen Anzahl an zweiter Tabelle – WillianLKeller

+0

hmm ... ich finde die Beispieltabellen für Ihre Frage nicht geeignet ... –