Autor | Zpráva | ||
---|---|---|---|
Jey__ Profil |
#1 · Zasláno: 30. 10. 2009, 00:05:15
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 * |
#2 · Zasláno: 30. 10. 2009, 00:12:16
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 |
#3 · Zasláno: 30. 10. 2009, 00:25:43 · Upravil/a: Jey__
Nevím jak to myslíš webař, nemohl bys napsat přímo select?
|
||
Kajman_ Profil * |
#4 · Zasláno: 30. 10. 2009, 08:21:06
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 |
#5 · Zasláno: 31. 10. 2009, 17:43:48
děkuju, už jsem to vyřešil pomocí php.
|
||
Časová prodleva: 14 let
|
0