Vinzenz Mai: MySQL - Left JOIN - Verbunde datensetze suchen (problem: doppel)

Beitrag lesen

Hallo,

SELECT T1.zID,T2.Name FROM 0815 AS T1

LEFT JOIN 0815 AS T2 ON T2.zID = T1.zID
WHERE T1.Name LIKE '%Blub%'

  
warum verwendest Du einen [LEFT JOIN](http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/#leftright_join)?  
Warum verwendest Du keinen [INNER JOIN](http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/#inner_join)?  
  

> zID  Name  
> 123  Test  
> 123  Blub  
> 123  Keine Ahnung  
> 436  UserBlub  
> 436  Random Scheiß  
> 436  YX Scheiß ZP  
> 436  Weis ich nicht  
  

> Wenn ich ab nun nach "scheiß" suchen lassen dann (was auch logisch ist) listet er die zID 2 mal mit allen dazugehöriegen einträgen auf. Jemand eine  
> Idee das design oder die abfrage zu verbessern ?  
  
Ein paar Ideen:  
  
- nutze DISTINCT  
- gruppiere  
- nutze Subselects statt des [Selfjoins](http://aktuell.de.selfhtml.org/artikel/datenbanken/fortgeschrittene-joins/selfjoin.htm).  
  
Prüfe mit [EXPLAIN](http://dev.mysql.com/doc/refman/5.1/de/explain.html) den Aufwand der jeweiligen Lösung.  
  
  
Freundliche Grüße  
  
Vinzenz