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

Vyberte zpět věci, které neexistují

předpokládejme, že vaše značky ('c', 'cg', 'rx') jsou v tabulce nazvané tags_match se stejnou strukturou jako výše

pak můžete udělat toto:

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

To najde všechny položky v tags_match, které nejsou ve značkách, takže byste získali požadovaný výsledek, ale vaše značky ('c', 'cg','rx') bohužel nejsou v tabulce :(

Nezáleží na tom, můžeme použít poddotaz k 'falšování' tabulky

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

I když je to trochu ošklivé, bude to fungovat. Pokud máte mnoho položek, které chcete otestovat, možná budete chtít zvážit vytvoření skutečné dočasné tabulky.



  1. SQLite JSON_REPLACE()

  2. MySql.Data.MySqlClient.MySqlException:“Hostitel localhost nepodporuje připojení SSL.”

  3. Výhody a zabezpečení služby relační databáze Amazon

  4. Provádění více SQL dotazů v jednom příkazu pomocí PHP