Autor Zpráva
wig
Profil
Prosím o radu.
Mám tabulku JEDNA: id, email dejmetomu
Tabulku DVA: id, id_jedna, parametr, email

V tabulce JEDNA je seznam emailů. V tabulce dva: JEDNA.id = DVA.id_jedna a parametr je druh emailů ktery se posle treba "email1"

Potřebuju SELECT ktery vytahne z tabulky JEDNA všechny emaily na které ještě není zápis v tabulce DVA

SELECT * FROM JEDNA
LEFT JOIN DVA on JEDNA.id = DVA.id_jedna
WHERE parametr = 'email1' AND DVA.email is null

tohle samozrejme nefunguje
Tori
Profil
Koukněte na poddotazy s WHERE NOT EXISTS... http://dev.mysql.com/doc/refman/5.1/en/exists-and-not-exists-subqueries.html
wig
Profil
left joinem to tedy nejde resit?

ctu napriklad zde. http://www.linuxsoft.cz/article.php?id_article=882 ale nejde mi aplikovat taktez zde je pdobne reseni : výběr LEFT JOIN
Tori
Profil
wig:
V [#1] máte nesmyslnou část where: is null = řádek v té tabulce neexistuje. Tedy i hodnota DVA.parametr bude NULL. Pokud chcete najít jen adresy, na které ještě nebyl poslán e-mail typu "email1", přesuňte tu část z where do join on, teda
... LEFT JOIN DVA on JEDNA.id = DVA.id_jedna AND DVA.parametr = 'email1' 
WHERE DVA.email IS NULL
(podle druhého Kajmanova dotazu v odkázaném vlákně).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: