# mysql 2 abfragen vergleichen und unterschiede ausgeben



## thiamak (18. April 2007)

Hallo, hab dazu leider nix gefunden, bzw bekomme das nicht hin 

Ich habe 2 abfragen, die mir als antwort eine liste mit namen ausgeben. die 2 ergebnise sollen verglichen werden und dann soll er mir ausgeben wer in der 2 ten liste fehlt. als beispiel:


1. Abfrage (alle mögleichen user in der datenbank)
Name A
Name B 
Name C
Name D


2. Abfrage (eingetragene User in Liste)
Name B
Name C

Das Ergebnis sollte dann sein: (User die sich noch eintragen müssen)
Name A
Name D



Hoffe iihr könnt mir vielleicht helfen


----------



## Radhad (18. April 2007)

Wie wäre es mit dem Operator "NOT IN"? Also du benutzt deine 1. Abfrage:

SELECT * FROM table;

und verknüpfst dieses Ergebnis mit einer Unterabfrage:


```
SELECT *
FROM table
WHERE name NOT IN (
SELECT *
FROM table2
);
```


----------



## thiamak (18. April 2007)

Ich habs mal probiert, aber da bringt er leider nen fehler:


 SELECT spieler
FROM raid_teilnehmer
WHERE raid = '309' NOT
IN (

SELECT member_name
FROM eqdkp_members
WHERE member_rank_id = '1' OR member_rank_id = '2'
)
LIMIT 0 , 30

MySQL meldet:
#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT member_name
FROM eqdkp_members
WHERE member_rank_id =  '


----------



## thiamak (18. April 2007)

ich denke das mit not in geht nicht, da ich sql 4.0.15 hab, gibts dann nen anderen befehl dafür?


----------



## zeja (19. April 2007)

Probier mal


```
SELECT m.member_name 
FROM raid_teilnehmer r LEFT JOIN eqdkp_members m 
   ON r.spieler=m.member_name
WHERE r.spieler IS NULL
```


----------



## thiamak (19. April 2007)

hatte ich schon probiert, geht leider nicht da die abfrage :

 raid = '309' 
member_rank_id = '1' OR member_rank_id = '2'


mit drin sein muss :-(


----------

