wrc1000
15.11.2012, 12:34:32
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
15.11.2012, 12:41:33
Poczytaj o LEFT , RIGHT JOIN. Zwrócą NULL dla niewystępujących produktów.
nospor
15.11.2012, 12:42:42
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
15.11.2012, 12:48:23
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
15.11.2012, 12:49:56
Próbuj, jeśli nie zadziała to pisz na forum lub próbuj zmieniać.
wrc1000
15.11.2012, 12:53:36
no ma mbłąd
Szymciosek
15.11.2012, 12:54:17
To chociaż go podaj albo znajdzie się wróżbita na forum.
wrc1000
15.11.2012, 12:58:59
hmm bład mam taki:
Błąd:Unknown column 'product_lang.id_product' in 'on clause' ....
tak wiec posprawdzam jeszcze raz
nospor
15.11.2012, 13:00:01
nie: FROM product_lang, product
a: FROM (product_lang, product)
wrc1000
15.11.2012, 13:08:27
hmm zadziałało.
jednak w przykładach dla join nawiasów nie znalazłem.
Wielkie dzięki dla wszystkich pomocnych
nospor
15.11.2012, 13:11:45
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.htmlCytat
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
15.11.2012, 13:29:01
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.