ceverlante
Grünschnabel
Hallo Zusammen,
ich hab ein Problem, dass mir seit geraumer Zeit etwas Kopfzerbrechen macht.
Ich habe eine recht Umfangreiche Suche aufgebaut für ein Portal - in diesem Zuge soll der Besucher eine Agentur anhand seiner "Leistungen" (die die Agentur in mehrfach auswahl für sich getroffen hat) Auswählen können und entsprechend die Ergebnisse finden:
Als Beispiel
Ich Suche eine Agentur die Webdesign (id: 1) und gleichzeitig Grafikdesign (id:2) macht. Also soll bei der Suche nur die Agenturen gelistet werden, die auch diese Ausgewählt haben.
Hinweis
Den SQL Befehl habe ich wie folgt aufgebaut:
Code Info:
Um die Übersichtlichkeit zu lassen habe ich ein A.* genommen, aber ich Original Script nehme ich natürlich nur die Spalten die ich brauche. Das "status=1" nehme ich, weil die Abfrage Dynamisch aufgebaut wird.
Die Problemstellung
Das genaue Problem ist, wenn ich die "comb_id"s mit AND verknüpfe kommt als Ergebnis immer 0 Agenturen raus. Es funktioniert nur, wenn ich sie mit OR Verknüpfe - aber das ist ja dann
nicht das gewünschte Ergebnis. Wie bekomme ich es also jetzt hin, dass ich nur alle Agenturen bekomme die die zwei Leistungen Ausgewählt haben?
Ich wäre um konstruktive Hilfe sehr Dankbar.
Lieben Gruß,
ceverlante
ich hab ein Problem, dass mir seit geraumer Zeit etwas Kopfzerbrechen macht.
Ich habe eine recht Umfangreiche Suche aufgebaut für ein Portal - in diesem Zuge soll der Besucher eine Agentur anhand seiner "Leistungen" (die die Agentur in mehrfach auswahl für sich getroffen hat) Auswählen können und entsprechend die Ergebnisse finden:
Als Beispiel
Ich Suche eine Agentur die Webdesign (id: 1) und gleichzeitig Grafikdesign (id:2) macht. Also soll bei der Suche nur die Agenturen gelistet werden, die auch diese Ausgewählt haben.
Hinweis
- Es gibt eine "agenturen" Tabelle, wo alle allgemeinen Agentur Details stehen.
- Dann gibt es eine agentur_dtls_leistungen Tabelle - die aber für die Abfrage nicht relevant ist. Hier sind quasi alle Leistungen gelistet
- Und es gibt die Kombinations Tabelle agenturen_dtls_leistungen_comb die mit der agentur_id (sid von agentur) & der comb_id (sid von leistungen) verbunden sind
Den SQL Befehl habe ich wie folgt aufgebaut:
Code:
SELECT DISTINCT A.*
FROM agenturen AS A
INNER JOIN agenturen_dtls_leistungen_comb AS L
ON (A.sid = L.agentur_id)
WHERE status=1
AND ( L.comb_id = 1 AND L.comb_id = 2 )
Code Info:
Um die Übersichtlichkeit zu lassen habe ich ein A.* genommen, aber ich Original Script nehme ich natürlich nur die Spalten die ich brauche. Das "status=1" nehme ich, weil die Abfrage Dynamisch aufgebaut wird.
Die Problemstellung
Das genaue Problem ist, wenn ich die "comb_id"s mit AND verknüpfe kommt als Ergebnis immer 0 Agenturen raus. Es funktioniert nur, wenn ich sie mit OR Verknüpfe - aber das ist ja dann
nicht das gewünschte Ergebnis. Wie bekomme ich es also jetzt hin, dass ich nur alle Agenturen bekomme die die zwei Leistungen Ausgewählt haben?
Ich wäre um konstruktive Hilfe sehr Dankbar.
Lieben Gruß,
ceverlante
Zuletzt bearbeitet: