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
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
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
