Markus aus Bremen: 2 Arrays in einer Abfrage über 2 Tabellen mischen?

Beitrag lesen

Hallo Ekki,

zunächst mal vielen Dank für Deine Mühe. Ich glaube, das geht so in die richtige Richtung. Mein Problem ist eher die Formulierung der korrekten Anfrage.

SELECT *  
  FROM products_to_categories1      T1  
  LEFT JOIN products_to_categories2 T2 ON T1.foo = T2.bar  
 WHERE T1.Ort IN ('Hamburg', 'Bremen', 'München')  
   AND T2.Art IN ('Hotel', 'Jugendherberge')

Mein problem ist, dass ich die Inhalet der beiden Arrays nicht kenne, weil die aus einer vorangegangenen Abfrage gefüllt werden, was ja ebenfalls kein Problem ist. Wenn Du mri sagen kannst, wie ich das korrekt formuliere, ist Dir mein ewiger Dank sicher.

SELECT *  
  FROM products_to_categories1      T1  
  LEFT JOIN products_to_categories2 T2 ON T1.foo = T2.bar  
 WHERE T1.Ort IN (Array1)  
   AND T2.Art IN (Array2)

Es ist nicht bekannt, wie viele Einträge in den beiden Arrays stecken. Diese Abfrage müsste also möglichen Fälle gegeneinander abklopfen. Kann ich die Arrays direkt in die Abfrage einsetzen oder muss ich zuerst die Werte auslesen und dann die Ergebnisse über eine Hilfsvariable in die Abfrage einsetzen?

Nochmal Danke.

Markus

Mahlzeit Markus aus Bremen,

was genau hat Deine Frage mit PHP zu tun? Ich habe mal den Themenbereich geändert - Du solltest noch das von Dir verwendete DBMS samt Version angeben.

»» Im Text formuliert würde das so aussehen:
»» Gib mir alle Artikel zurück, die in Tabelle1 eine der Bedingungen aus Array1 erfüllen und gleichzeitig aus Tabelle2 eine der Bedingungen aus Array2.

Und in SQL würde ich das ungefähr so formulieren:

SELECT *

FROM products_to_categories1      T1
  LEFT JOIN products_to_categories2 T2 ON T1.foo = T2.bar
WHERE T1.Ort IN ('Hamburg', 'Bremen', 'München')
   AND T2.Art IN ('Hotel', 'Jugendherberge')


>   
>   
> »» Vielleicht habe ich einfach nur ein Brett vor dem Kopf.  
>   
> Keine Ahnung, kann ich von hier aus nicht sehen. Klappt es mit einer Abfrage ähnlich der o.g.?  
>   
>   
> MfG,  
> EKKi  
>