2 Stimmen

Ergebnisse aus einer MySQL UNION-Abfrage ausschließen

Wie kann ich Ergebnisse aus einer MySQL UNION ausschließen? Ich bin auf der Suche nach dem Äquivalent zu:

(query1)
UNION
(query2)
UNION
(query3)
EXCEPT
(query4)

6voto

a1ex07 Punkte 36186
SELECT a.* FROM 
(
   SELECT ... FROM table_a
   UNION
   SELECT ... FROM table_b
)a 
WHERE a.x NOT IN (...) 
// or   WHERE NOT EXIST  ....' 
// or   LEFT JOIN table_n ON () WHERE table_n.id IS NULL

1voto

D'Arcy Rittich Punkte 159655

Sie können WHERE NOT IN verwenden.

1voto

OMG Ponies Punkte 312816

Kann die Spalte(n), die für den Ausschluss verglichen wird/werden, nullbar sein?

Das heißt, können die Werte NULL sein?

Wenn ja - verwenden Sie entweder NOT IN o NOT EXISTS - eine dieser Methoden wird besser funktionieren als LEFT JOIN/IS NULL, lesen Sie dies für Details .

Wenn nein, verwenden Sie eine LEFT JOIN/IS NULL weil es effizienter ist - siehe dieser Artikel für Details .

0voto

Saif Khan Punkte 17922

Ich weiß, dass es sich um mySQL handelt, aber vielleicht funktioniert das ja. Ich verwende dies auf SQLServer

select * from (

select (query1)
union
select (query2)
) a

where a.column = xyz

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X