Mailinglisten-Archive |
Michael Borchers wrote: > Folgende Queries liefern das gleiche Ergebnis. > > Vorteil des LEFT OUTER JOINS liegt ja auf der Hand, > > allerdings gibt es in der Regel immer mind. einen Datensatz in der rechten > Tabelle. > > Über EXPLAIN erhalte ich auch das gleiche Ergebnis. > > Kennt jmd Vorteile bzgl Geschwindigkeit? Das ist für mysql das Gleiche. Allerdings ist die WHERE-Bedingung in deinem ersten Query doppelt. Wenn du das WHERE weglässt, ist der einzige Unterschied, dass JOIN mehr Ergebnisse liefern kann. Nämlich dann, wenn JOIN in der orders Tabelle etwas findet, was er nicht der orders_products Tabelle zuordnen kann. Dann bekommst du von JOIN zumindest den Teil aus orders. Wenn du auf Geschwindigkeit aus bist, dann werde das hier irgendwie los: orders_products.products_name LIKE '%a%' Das ist so ziemlich die langsamste Abfrage, mit der du mysql überhaupt nur beschäftigen kannst und kein index kann dir dabei helfen. ggf. hilft dir der mysql-Volltextindex. > > > > > > SELECT orders.orders_id, orders_products.products_name > > FROM orders > > LEFT OUTER JOIN orders_products ON orders_products.orders_id = > > orders.orders_id > > AND orders_products.products_name LIKE '%a%' > > WHERE orders.orders_id = orders_products.orders_id > > GROUP BY orders.orders_id > > LIMIT 100 > > > > SELECT orders.orders_id, orders_products.products_name > > FROM orders, orders_products > > WHERE orders.orders_id = orders_products.orders_id > > AND orders_products.products_name LIKE '%a%' > > GROUP BY orders.orders_id > > LIMIT 100 > Yannik
php::bar PHP Wiki - Listenarchive