Verschachtelte Abfragen

Ich stehe vor einer Aufgabe bei der ich drei Datenbanken habe, die voneinander abhängig sind.

Theoretisch könnte man ja die ganze Abfrage in ein Query stecken, jedoch bin ich nicht sonderlich überzeugt von dieser Idee.

Hat es irgendwelche nachteile die ich nicht sehe, wenn ich es selbst schreibe? Es gibt ein wenig mehr zu schreiben, dafür wüsste ich was passiert…

Meinst du wirklich Datenbanken oder meinst du in 3 Tabellen?
Wenn sie in 3 Tabellen sind ist das kein Ding, wenn sie in 3 Datenbanken sind würde ich die Frage stellen “warum?”

Grundsätzlich solltest du es sogar so machen, anstatt 3 einzelne Abfragen zu stellen. Weil so kann der Queryoptimizer die Abfrage besser optimieren. Das Einzige was du gucken solltest ob nicht auch ein Join geht. Weil je nach Art könnte ein Join schneller als ein Subselect und umgekehrt sein.

Okey, ja du hast natürlich recht ich meinte Tabellen…

Gut, dann heisst es wiederum auch solche Abfragen zu lernen.

Vielen Dank

In mehreren Queries gibt es gar nichts zu optimieren, außer eben die Einzelqueries. Subqueries sind meistens schneller als per Join verknüpfte Queries, mit temporären Queries kann man auch extrem viel herausholen.
Wobei das hier ja gar nicht das Thema des Threads ist.

Datensätze, die aus mehreren Tabellen stammen abzufragen, ist genau das, wofür SQL entwickelt wurde.
Wenn dir das noch nicht so geläufig ist, dann sieh dir die verschiedenen Join-Typen an: INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN und ggf. FULL OUTER JOIN (den kann MySQL nicht).
Außerdem auch hier nochmal mein gern gebrachter Tip: sieh dir den Ausführungsplan deiner Query mit EXPLAIN an, um herauszubekommen, wo du ggf. noch einen Index setzen musst oder die Abfrage an sich noch optimieren kannst.

[QUOTE=cmrudolph]
Außerdem auch hier nochmal mein gern gebrachter Tip: sieh dir den Ausführungsplan deiner Query mit EXPLAIN an, um herauszubekommen, wo du ggf. noch einen Index setzen musst oder die Abfrage an sich noch optimieren kannst.[/QUOTE]

Vielen Dank für den Tipp

Wenn du mit Subquerys arbeitest zerlegt der Optimizer die gern auch in Joins

Zu den Join Typen guck mal in unser Wiki dort habe ich vor einiger Zeit mal angefangen paar Dinge dazu aufzuschreiben

oder auch hier: http://dev.mysql.com/doc/