sql >> Database teknologi >  >> RDS >> Mysql

Vælg tilbage ting, der ikke eksisterer

lad os antage, at dine tags ('c', 'cg','rx') er i en tabel kaldet tags_match med samme struktur som ovenfor.

så kunne du gøre dette:

select tr.name 
from tags as tl 
    right join tags_match as tr 
    on tl.name = tr.name
where tl.name is null

Dette vil finde alle de elementer i tags_match, der ikke er i tags, så dette ville give dig det ønskede resultat, men dine tags ('c', 'cg','rx') er desværre ikke i en tabel :(

Uanset hvad kan vi bruge en underforespørgsel til at 'falske' tabellen

select tr.name 
from tags as tl 
    right join (select 'cg' as name 
                union select 'c' as name 
                union select 'rx' as name) as tr 
    on tl.name = tr.name
where tl.name is null

Selvom det er lidt grimt, vil dette virke. Hvis du har mange ting, du vil teste, kan du overveje at oprette en rigtig midlertidig tabel.



  1. Sådan vises rækkeværdier som kolonner i MySQL

  2. hvordan man får mysql tabelstørrelse i GB

  3. Sådan oversætter du PostgreSQL merge_db (aka upsert) funktion til MySQL

  4. Kommandolinje PHP mysql_connect() fejl