MySQL - MINUS
U jednoho projektu jsem po dlouhé době narazil na problematiku funkcí v MySQL kdy bylo pro dané řešení vhodné využít funkce MINUS, která není v MySQL implementována.
Zápis v SQL
SELECT id, name FROM a
MINUS
SELECT id, name FROM b
nahradíme jednoduše pomocí transformace za subquery
SELECT DISTINCT id, name
FROM a
WHERE (id, name)
NOT IN (SELECT id, name FROM b);
Ti zkušenější mohou namítnout, že předchozí zápis není ničím jiným než klasický left join, který hledá vše, co není v druhé tabulce:
SELECT DISTINCT a.id, a.name
FROM a LEFT JOIN b USING (id, name)
WHERE b.id IS NULL