globe: Suchabfrage für Eigenschaftswerte in mehreren Zeilen

Beitrag lesen

n'abend,

Frage: Mit welcher SQL-Operation/mit welchem Join-Typ kann ich eine Suchabfrage realisieren a la "Gib mir alle Kleinanzeigen-IDs (ka_id), welche die Automarke Audi und 4 Türen haben". Ist das am besten mit einem Self-Join machbar oder welches Vorgehen empfehlt ihr? Das Problem ist, dass die Feldanzahl nicht fest und größer zwei ist, d.h. dass bspw. 6 oder 8 Felder auf ihren Inhalt überprüft werden müssten. An der Datenbankstruktur selbst kann ich aber leider nichts groß ändern.

SELECT k.*  
  FROM Kleinanzeigen k  
 WHERE k.ka_id IN ( SELECT f.ka_id FROM KleinanzeigenFelder f JOIN KleinanzeigenValues v ON v.kf_id = f.kf_id WHERE f.ka_name = "Automarke" AND v.kf_value = "Audi" )  
   AND k.ka_id IN ( SELECT f.ka_id FROM KleinanzeigenFelder f JOIN KleinanzeigenValues v ON v.kf_id = f.kf_id WHERE f.ka_name = "Türanzahl" AND v.kf_value = "4" );

Das ist zwar wirklich nicht das performanteste, aber sollte erst mal seinen Zweck erfüllen.

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|