sql >> Database >  >> RDS >> Mysql

controleer of een kolom ALLE waarden van een andere kolom bevat - Mysql

Als ik het goed begrijp, wil je alle personID's van T1 ophalen die alle bijbehorende stuffID's hebben gevonden in T2.

U kunt dit als volgt opsplitsen:Zoek eerst alle T1-vermeldingen die overeenkomen met een geneste zoekopdracht

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)

Nu moet je controleren welke van de items in deze set ALLE stuffID's bevatten die je wilt

GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

en zet alles bij elkaar:

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)
GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

HTH.



  1. MYSQL-update met WHERE SELECT subquery-fout

  2. Hoe groepeer ik op continue bereiken

  3. Hoe een afbeelding uit de database in CodeIgniter weer te geven?

  4. C# - MySQL versus Microsoft SQL Server