sql >> Databáze >  >> RDS >> Mysql

zkontrolujte, zda sloupec obsahuje VŠECHNY hodnoty jiného sloupce - Mysql

Pokud tomu dobře rozumím, chcete načíst všechna ID osoby z T1, která mají všechna související ID položky nalezená v T2.

Můžete to rozdělit následovně:Nejprve najděte všechny položky T1, které odpovídají vnořenému dotazu

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

Nyní musíte zkontrolovat, která z položek v této sadě obsahuje VŠECHNA požadovaná ID materiálu

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

a dát to všechno dohromady:

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. Dynamický sloupec v příkazu SELECT postgres

  2. MySQL Funkce COT() – Vrátí kotangens čísla v MySQL

  3. Změna řazení serveru SQL Server na velikost nerozlišující velká a malá písmena?

  4. INSERT INTO ... SELECT bez podrobností o všech sloupcích