Autor Zpráva
sprinter001
Profil
Dobrý den,

potřeboval bych poradit, jak do MySQL dotazu, který uvádím níže dostat toto: Potřebuji, aby se zároveň prověřilo, zda neexistují produkty ve "stínové kategorii" tedy ještě existuje tabulka "N11_MOJE_STINKAT" a v té dva sloupce, a to "id_produkt" a "stinovka".

Jak dotaz rozšířit o to, aby když se hodnota ve sloupci stinovka = 89 vypsali i informace o produktu dle čísla uvedeného v příslušném řádku id_produkt? (toto číslo produktu poté určitě existuje p.products_id...)

SELECT mz.id_atribut,
       mz.hodnota,
       pd.products_name,
       p.products_image,
       p.products_quantity,
       p.products_id,
       p.products_type,
       p.master_categories_id,
       p.manufacturers_id,
       p.products_price,
       p.products_tax_class_id,
       pd.products_description,
       IF(s.status = 1, s.specials_new_products_price, NULL)             AS
       specials_new_products_price,
       IF(s.status = 1, s.specials_new_products_price, p.products_price) AS
       final_price,
       p.products_sort_order,
       p.product_is_call,
       p.product_is_always_free_shipping,
       p.products_qty_box_status
FROM   n11_moje_atributy2produkty mz,
       n11_products_description pd,
       n11_products p
       LEFT JOIN n11_manufacturers m
         ON p.manufacturers_id = m.manufacturers_id,
       n11_products_to_categories p2c
       LEFT JOIN n11_specials s
         ON p2c.products_id = s.products_id
WHERE  ( ( mz.id_atribut = '1'
            OR mz.id_atribut = '2'
            OR mz.id_atribut = '3' )
         AND mz.id_produkt = pd.products_id )
       AND p.products_status = 1
       AND p.products_id = p2c.products_id
       AND pd.products_id = p2c.products_id
       AND pd.language_id = '1'
       AND p2c.categories_id = '89'
ORDER  BY mz.hodnota,
          p.products_sort_order,
          pd.products_name  

Mnohokrát děkuji za radu!
Kajman
Profil
Před where dáte

LEFT JOIN N11_MOJE_STINKAT st
  ON p2c.products_id=st.id_produkt AND p2c.categories_id=st.stinovka

Poté si můžete např. vypsat sloupec stinovka a podle něho určovat, zda tam ta vazba je nebo ne.
sprinter001
Profil
Kajman:
Mnohokrát děkuji! Velmi to pomohlo. Výskedný kó, který funguje vypadá ve výsledku takto:
SELECT st.stinovka,
       mz.id_atribut,
       mz.hodnota,
       pd.products_name,
       p.products_image,
       p.products_quantity,
       p.products_id,
       p.products_type,
       p.master_categories_id,
       p.manufacturers_id,
       p.products_price,
       p.products_tax_class_id,
       pd.products_description,
       IF(s.status = 1, s.specials_new_products_price, NULL)             AS
       specials_new_products_price,
       IF(s.status = 1, s.specials_new_products_price, p.products_price) AS
       final_price,
       p.products_sort_order,
       p.product_is_call,
       p.product_is_always_free_shipping,
       p.products_qty_box_status
FROM   n11_moje_atributy2produkty mz,
       n11_products_description pd,
       n11_products p
       LEFT JOIN n11_manufacturers m
         ON p.manufacturers_id = m.manufacturers_id,
       n11_products_to_categories p2c
       LEFT JOIN n11_specials s
         ON p2c.products_id = s.products_id
       LEFT JOIN n11_moje_stinkat st
         ON p2c.products_id = st.id_produkt
WHERE  ( ( mz.id_atribut = '1'
            OR mz.id_atribut = '2'
            OR mz.id_atribut = '3' )
         AND mz.id_produkt = pd.products_id )
       AND p.products_status = 1
       AND p.products_id = p2c.products_id
       AND pd.products_id = p2c.products_id
       AND pd.language_id = '1'
       AND ( p2c.categories_id = '89'
              OR st.stinovka = 'stin_kat_89' )
ORDER  BY mz.hodnota,
          p.products_sort_order,
          pd.products_name  

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: