Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SELECT mit Join auf 2 Tabellen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
euroexchange.de
PostRank 6
PostRank 6
Beiträge: 471
Registriert: 02.06.2007, 13:49

Beitrag von euroexchange.de » 02.11.2010, 11:47

Hallo @all.

Ich habe 2 Tabellen die über den Wert "term" verknüpft sind.

Tabelle 1:
term, syno, hits

Tabelle 2:
term, url, hits

Ich möchte alle URL aus Tabelle 2 mit SYNO aus Tabelle 1 verknüfpen wenn die Werte TERM in Tabelle 1 und Tabelle 2 gleich sind.

Soweit ja unproblematisch. Soweit ...

Jetzt möchte ich jedoch, das im Ergebnis jede URL und jedes SYNO nur einmal vorkommt.

Code: Alles auswählen

SELECT DISTINCT url, T1.syno FROM (T2 INNER JOIN T1 ON T1.term = T2.term) WHERE T2.term LIKE 'sparen%' AND T1.syno != '' GROUP BY syno ORDER BY hitslink LIMIT 50
ergibt:

url syno
www.a.de/index.php?kw=sparen&page=1 festgeld
www.a.de/index.php?kw=sparen&page=1 haushaltsbuch
www.a.de/index.php?kw=sparen&page=1 monatlich sparen
www.a.de/index.php?kw=sparen&page=1 sparen haushalt
www.a.de/index.php?kw=sparen&page=1 sparen tipps
www.a.de/index.php?kw=sparen&page=1 sparkasse
www.a.de/index.php?kw=sparen&page=1 spartipps

Code: Alles auswählen

SELECT DISTINCT url, T1.syno FROM (T2 INNER JOIN T1 ON T1.term = T2.term) WHERE T2.term LIKE 'sparen%' AND T1.syno != '' GROUP BY url ORDER BY hitslink LIMIT 50
ergibt:

url syno
www.a.de/ festgeld
www.b.de/search.php?do_search=1&searchword=sparen festgeld
www.c.de/index.php?kw=sparen&page=1 festgeld

Gruppiere ich nach SYNO erhalte ich natürlich immer die gleiche URL, welche mit allen unterschiedlichen SYNO verknüpft ist. Gruppiere ich nach URL erhalte ich immer das gleiche SYNO, welches mit allen URL verknüpft ist.

Wie müßte die Abfrage lauten damit er jeden Wert SYNO aus Tabelle 1 und jeden Wert URL aus Tabelle 2 nur einmal verwendet?

Das DISTINCT oben bringt nicht die gewünschte Funktion. Es fragt den Wert nur einmal ab, kombiniert ihn in der virtuellen Tabelle dann aber mit den URL :-(