pavoo
6.09.2012, 20:00:52
Jakoś na forum presy nie mogę się doprosić a z MySQL to raczej leżę. Czy ktoś by mi pomógł i poprawił składnię pytania MySQL. Pytanie jest z bazy danych Prestashop.
SELECT distinct ps_product_lang.name as name, meta_title, meta_description, meta_keywords, description_short, ps_category_lang.name as category,
FROM ps_product_lang, ps_category_lang, ps_product
WHERE ps_product_lang.id_lang = 6 AND ps_product_lang.id_product = 21630 AND
ps_product_lang.id_product = ps_product.id_product AND
ps_category_lang.id_category = ps_product.id_category_default LIMIT 1
Jak będę miał pierwowzór będę w stanie wykorzesać z tego kod dla samej Presty. Dziękuje wszystkim za pomoc.
mmmmmmm
6.09.2012, 21:17:08
Wywal przecinek przed FROM
pavoo
7.09.2012, 05:49:34
Dostaje takie komunikat w phpMyAdmin:
#1052 - Column 'meta_title' in field list is ambiguous
SELECT DISTINCT ps_product_lang.name AS name, meta_title, meta_description, meta_keywords, description_short, ps_category_lang.name AS category
FROM ps_product_lang, ps_category_lang, ps_product
WHERE ps_product_lang.id_lang =6
AND ps_product_lang.id_product =21630
AND ps_product_lang.id_product = ps_product.id_product
AND ps_category_lang.id_category = ps_product.id_category_default
LIMIT 1
wywalenie przecinka nie rozwiązuje problemu.
W oryginale zapytanie wyglądało tak:
SELECT distinct '._DB_PREFIX_.'product_lang.name as name, meta_title, meta_description, meta_keywords, description_short, '._DB_PREFIX_.'manufacturer.name as manufacturer
FROM '._DB_PREFIX_.'product_lang, '._DB_PREFIX_.'manufacturer, '._DB_PREFIX_.'product
WHERE '._DB_PREFIX_.'product_lang.id_lang = '.intval($id_lang).' AND '._DB_PREFIX_.'product_lang.id_product = '.intval($id_product).' AND
'._DB_PREFIX_.'product_lang.id_product='._DB_PREFIX_.'product.id_product AND
'._DB_PREFIX_.'manufacturer.id_manufacturer='._DB_PREFIX_.'product.id_manufacturer');
tam gdzie _DB_PREFIX_ to powinno być ps_
To pytanie działało prawidłowo zmieniłem tylko tabele z której ma wyciągać dane. Podejrzewam że problem jest w tym że tabela _DB_PREFIX_.'manufacturer (ps_manufacturer) nie posiadała zdublowanych rekordów a w tabeli którą wstawiłem takie rekordy właśnie występują.
bpskiba
7.09.2012, 07:04:15
#1052 - Column 'meta_title' in field list is ambiguous
Oznacza, że kolumny o nazwie meta_title istnieją w dwóch tabelach i serwer nie wie, o którą chodzi. Musisz podać nazwę tabeli i pole czyli np ps_product.meta_title w miejsce meta_title
pavoo
7.09.2012, 19:03:27
Wielkie dzięki działa tak jak należy.
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.