Nigel: Frage zu mysql-query

Hallo,

hier erstmal die Query:

  
select k.Name1, kp.Name2, kp.Email  
from tabelle1 k  
RIGHT JOIN tabelle2 kp ON k.ID=kp.ID  
where  
k.Email LIKE "%Keller%"  
OR k.Name1 LIKE "%Keller%"  
OR kp.Name2 LIKE "%Keller%"  
OR kp.Email LIKE "%Keller%"  

Wie kann ich erreichen, dass bei Vorhandensein des Namens Keller in Name1 und Kellerhausen in Name 2 (und zwar im selben Datensatz) dieser Datensatz 2 mal in die Ergebnissmenge aufgenommen wird?

Zusatz: Da aber auch in der emailadresse vermutlich der Name Keller auftauchen wird: 3 mal solls dann nicht in die Ergebnissmenge aufgenommen werden.

Grüße, nigel

  1. Hm... ich kenn mich mit mySQL nicht so gut aus, aber in Oracle würde ichs mit UNION ALL versuchen. Dh ich schreib zwei separate Abfragen, wovon die eine die Zeile liefert, wenn in Name1 Keller steht, und die andere die Zeile liefert, wenn in Name2 Keller steht. Diese dann mittels UNION ALL verbinden und du hättest beide Datensätze.

  2. moin,

    version des dbms, bespieldatensätze in den beiden tabellen plus darauf die ergebnismenge, die du willst.

    Ilja