# MySQL-Union-Abfrage mit zweifacher WHERE-Bedingung



## funkyvino (28. Oktober 2007)

Hallo,

ich bin stecken geblieben, als ich versuchte eine Select-Abfrage zu erstellen, die Werte aus zwei Tabellen mit einander vergleicht und die Ergebnisse ausgibt, welche in beiden Tabellen nicht zusammen vorkommen. Wäre im Prinzip auch nicht das Problem, wenn ich die Ergebnismenge aus einer Tabelle nicht schon vorher mit einer WHERE-Funktion einschränken wollte. 
Konkret bin ich bis zu folgendem Punkt gekommen:

SELECT * FROM contacts 
UNION
SELECT * FROM group WHERE group_id = $id	
WHERE contacts.con_id != group.contact_id ORDER BY nname ASC

Bei Ausführung erhalte ich die Fehlermeldung "mysql_fetch_array(): supplied argument is not a valid MySQL result resource"

Danke für einen kleinen Denkanstoß.
Markus


----------



## ishino (29. Oktober 2007)

Ich würde mal sagen UNION ist hier fehl am Platz (und die Art wie Du es verwendest auch, von den zwei WHERE-Klauseln - was schlicht syntaktisch falsch ist - mal abgesehen). Nach Deiner Beschreibung und dem, was Du schon versucht hast, würde ich eher mal zu einem Join tendieren. Irgendwas in der Art:


```
SELECT *
FROM contacts c, group g
WHERE c.group_id = $id
AND c.con_id != g.contact_id
ORDER BY c.nname ASC
```

Ohne die Tabellen zu sehen und eine Beschreibung von dem zu haben, was Du eigentlich vor hast, ist es aber schwierig, einen genauen Lösungsansatz zu geben.


----------

