Autor Zpráva
Jey__
Profil
Zdravim,

Mám tři tabulky:

*menu
-id
-nazev

*produkt
-id
-nazev

*umisteni_v_menu (relační tabulka, produkt může být umístěn ve více kategoriích)
-id_produkt
-id_menu

Potřeboval bych vypsat tři produkty s nejvyšším id a k nim pouze jednu kategorii v které daný produkt je (je jedno jaká to bude)

Používám následující select:

SELECT p.id, p.nazev, m.nazev, m.id
FROM menu AS m, 
produkt AS p
LEFT JOIN umisteni_v_menu AS u ON m.id = u.id_menu
AND p.id = u.id_produkt
ORDER BY p.id DESC


To mi ale vypíše všechny produkty několikrát (podle počtu položek v menu).

Prosím poraďte. Děkuji!
webař
Profil *
caukys, hele musis to napsat asi takhle
*menu
-id
-nazev

*produkt
-id
-nazev
*produkt
-id
-nazev

*umisteni_v_menu (relační tabulka, produkt může být umístěn ve více kategoriích)
-id_produkt
-id_menu
*umisteni_v_menu (relační tabulka, produkt může být umístěn ve více kategoriích)
-id_produkt
-id_menu
Jey__
Profil
Nevím jak to myslíš webař, nemohl bys napsat přímo select?
Kajman_
Profil *
Možná nějak takto...
select t.*, m2.nazev mnazev
from   (select p.id, p.nazev, min(m.id) mid
        from   menu as m
        right  join umisteni_v_menu as u on m.id = u.id_menu
        right  join produkt as p on p.id = u.id_produkt
        group  by p.id, p.nazev
        order  by p.id desc
        limit 3) t
left   join menu m2 on t.mid = m2.id
order  by t.id
Jey__
Profil
děkuju, už jsem to vyřešil pomocí php.

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:

0