sql >> Database >  >> RDS >> Mysql

Selecteer terug dingen die niet bestaan

laten we aannemen dat uw tags ('c', 'cg','rx') in een tabel met de naam tags_match staan ​​met dezelfde structuur als hierboven

dan zou je dit kunnen doen:

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

Dit zal alle items in tags_match vinden die niet in tags staan, dus dit zou je het gewenste resultaat geven, maar helaas staan ​​je tags ('c', 'cg','rx') niet in een tabel :(

Het maakt niet uit of we een subquery kunnen gebruiken om de tabel te 'faken'

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

Hoewel het een beetje lelijk is, zal dit werken. Als je veel items hebt die je wilt testen, kun je overwegen om een ​​echte tijdelijke tabel te maken.



  1. Nieuwe kolom toevoegen aan WordPress-database

  2. MySQL-equivalent van DECODE-functie in Oracle

  3. hoe maak je db mysql met sqlalchemy

  4. Uitvoerparameters voor opgeslagen procedures gebruiken in C#