Unterabfrage - Anfängerfrage

Soapp

Erfahrenes Mitglied
Ich möchte gerne eine Subquery versuchen. Ich kann das gaze nat. in einer Schleife problemlos lösen, möchte aber versuchen möglichst wenig queries zu machen....

tabelle domainnames:

id words_id ...........

1 1


tabelle words:

id word

1 internet
2 intern

1. SELECT id FROM words WHERE word LIKE 'internet'
2. für alle diese gefundenen ids suche mir aus der tabelle domainnames nun alle
Zeilen wo die words_id gleich ist der vorher abgefragten Id's
Das Problem ist dass mom. die query z. Bsp. ist
select id from domainnames where words_id IN 12,13,14,15, und das mag er nicht

MYSQL QUERY:
select id from domainnames where words_id IN
(SELECT id FROM words WHERE word LIKE 'internet')

danke
 
IN(1,2,3,4,5) sollte funktionieren.

Was jetzt deine genaue Frage ist, verstehe ich nicht so ganz.

Du machst eine Abfrage die zuerst die "subquery" abfragt, holst dir alle Ergebnis-Id's in einen Array (Array(1,2,3,4)).

Diesen array übergibts du dann an die andere Abfrage in dieser Form:

$query = "SELECT foo FROM bar WHERE bla_id IN(". implode(',', $id_array) .")";

Fertig.
Wenn dein Mysql-Server schon Subqueries kann, kannst du die erste Abfrage auch direkt dort integrieren, nur eben die Klammern für IN() nicht vergessen.
 
Zurück