mysql 2 abfragen vergleichen und unterschiede ausgeben

thiamak

Grünschnabel
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 :-)
 
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:

SQL:
SELECT *
FROM table
WHERE name NOT IN (
SELECT *
FROM table2
);
 
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 = '
 
Probier mal

SQL:
SELECT m.member_name 
FROM raid_teilnehmer r LEFT JOIN eqdkp_members m 
   ON r.spieler=m.member_name
WHERE r.spieler IS NULL
 
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 :-(
 
Zurück