Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
wrc1000
Witam.


Mam problem z zapytaniem

Witam

Mam 3 tabele product product_lang oraz image


Potrzebuje wylistować dane produktu w nich umieszczone. Tabela nr 3 zawiera zdjęcia: id zdjecia oraz id produktu. Wszystko idzie gładko do momentu az nie napotkam produktu bez zdjecia. Wtedy zostaje on pominięty poniweaż jego id nie wystapuje w kolumnie images.

Korzystam z takiego zapytania.


("SELECT product_lang.id_product, product_lang.link_rewrite, product_lang.id_lang, product_lang.name, product.id_product, product.quantity, product.price, product.reference, product.active, image.id_product, image.id_image, image.position FROM product_lang, product, image WHERE


product_lang.id_product = product.id_product AND
product_lang.id_product = image.id_product AND
product_lang.id_lang = 3 ORDER BY
product_lang.id_product DESC")


Naprowadzi ktoś ?

viking
Poczytaj o LEFT , RIGHT JOIN. Zwrócą NULL dla niewystępujących produktów.
nospor
tabele IMAGE dołączaj przez LEFT JOIN a to
product_lang.id_product = image.id_product
ma byc w ON składni LEFT JOIN
wrc1000
czyli coś takiego ?


("SELECT product_lang.id_product, product_lang.link_rewrite, product_lang.id_lang, product_lang.name, product.id_product, product.quantity, product.price, product.reference, product.active, image.id_product, image.id_image, image.position FROM product_lang, product LEFT JOIN image


ON product_lang.id_product = image.id_product

WHERE


product_lang.id_product = product.id_product AND
product_lang.id_lang = 3 ORDER BY
product_lang.id_product DESC")
Szymciosek
Próbuj, jeśli nie zadziała to pisz na forum lub próbuj zmieniać.
wrc1000
no ma mbłąd biggrin.gif
Szymciosek
To chociaż go podaj albo znajdzie się wróżbita na forum.
wrc1000
hmm bład mam taki:

Błąd:Unknown column 'product_lang.id_product' in 'on clause' ....

tak wiec posprawdzam jeszcze raz
nospor
nie: FROM product_lang, product
a: FROM (product_lang, product)
wrc1000
hmm zadziałało.

jednak w przykładach dla join nawiasów nie znalazłem.

Wielkie dzięki dla wszystkich pomocnych smile.gif

nospor
Cytat
jednak w przykładach dla join nawiasów nie znalazłem.
Następnym razem szukaj w manualu a nie w lodówce....

http://dev.mysql.com/doc/refman/5.0/en/join.html
Cytat
Previously, the SELECT was legal due to the implicit grouping of t1,t2 as (t1,t2). Now the JOIN takes precedence, so the operands for the ON clause are t2 and t3. Because t1.i1 is not a column in either of the operands, the result is an Unknown column 't1.i1' in 'on clause' error. To allow the join to be processed, group the first two tables explicitly with parentheses so that the operands for the ON clause are (t1,t2) and t3:
SELECT * FROM (t1, t2) JOIN t3 ON (t1.i1 = t3.i3);

Alternatively, avoid the use of the comma operator and use JOIN instead:
SELECT * FROM t1 JOIN t2 JOIN t3 ON (t1.i1 = t3.i3);

Nawet komunikat błędu podali taki sam co ty miałeś.
wrc1000
zgadza się ...

dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.