sql >> Databasteknik >  >> RDS >> Mysql

kontrollera om en kolumn innehåller ALLA värden för en annan kolumn - Mysql

Om jag förstår det rätt vill du hämta alla personID:n från T1 som har alla associerade stuffID:n som finns i T2.

Du kan dela upp detta enligt följande:Först och främst, hitta alla T1-poster som matchar en kapslad fråga

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

Nu måste du kontrollera vilken av posterna i denna uppsättning som innehåller ALLA saker-ID:n du vill ha

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

och sätt ihop allt:

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. Hur man installerar Lighttpd med PHP, MariaDB och PhpMyAdmin i Ubuntu

  2. Hur kan jag återställa MySQL root-användarens fullständiga rättigheter?

  3. ORA-12154 kunde inte lösa den angivna anslutningsidentifieraren

  4. Använder oanvända primärnycklar