Autor | Zpráva | ||
---|---|---|---|
Lopyn Profil |
#1 · Zasláno: 16. 2. 2008, 18:39:01
čau, chtěl bych poprosit o radu jak dostat vypsat hodnoty z DB při spojování tabulek...
tady je dotaz na DB: $query = "SELECT * FROM kosik JOIN user JOIN download d ON (user.id=kosik.id_user)"; potřebuju vypisovat i z tabulky download, tak nevím zda jsem to napsal správně...Řešení by bylo 3x query na DB ale to takhle nechci dělat. Díky |
||
djlj Profil |
#2 · Zasláno: 16. 2. 2008, 19:10:24
echo $pole['sloupec'];
|
||
Lopyn Profil |
#3 · Zasláno: 16. 2. 2008, 19:34:05
to sem nečekal že to bude stejný jako u normálního výpisu...díky
|
||
xHire Profil |
#4 · Zasláno: 16. 2. 2008, 19:37:32
Z tvého dotazu nevyplývá, co máš za databázi (občas se syntaxe může mírně lišit), ale z toho tvého SQL dotazu nejsem moudrý. Budu předpokládat, že to byl jenom nějaký tvůj pokus pro MySQL. ;c)
Joinů je celá řada - přinejmenším LEFT, RIGHT a INNER. Každý funguje trošku jinak, ale přesně ti jejich fce popsat nedovedu - zas až tolik SQLku nerozumím - jenom do té míry, kde dokážu řešit všechny své problémy alespoň trochu elegantně. ;c) Správně by to mohlo vypadat např. takhle: SELECT * FROM kosik as k LEFT JOIN user as u, download as d ON u.id = k.id_user; Nevím, jakou to má plnit funkci, takže je i možné, že ti to nebude vracet přesně to, co potřebuješ (předně tu nevidím ono propojení s tabulkou download (!!!)). Trochu to rozveď. Vedle té hvězdičky bys měl přesně pojmenovat sloupce, které se v tabulkách jmenují stejně, takže abys dostal opravdu všechny hodnoty a zároveň věděl, ze které tabulky která je. Dál pak už pokračuj podle svého programovacího jazyka (který jsi neuvedl), jak jsi zvyklý. |
||
Lopyn Profil |
#5 · Zasláno: 16. 2. 2008, 20:52:27
a když mám identický 2 sloupce, tak se běžně používá tabulka.sloupec...ale tady to takhle nejde. dělá se to snad jinak? díky
|
||
Lopyn Profil |
#6 · Zasláno: 16. 2. 2008, 20:56:22
xHire jj diky
Vedle té hvězdičky bys měl přesně pojmenovat sloupce, které se v tabulkách jmenují stejně, takže abys dostal opravdu všechny hodnoty a zároveň věděl, ze které tabulky která je. takže by to bylo takhle. SELECT * kosik.nazev as bla, user.nazev as us FROM kosik? mám pocit že to lze používat i bez "as"...a co se týče spojování tabulek, tak sem to nikdy nepotřeboval, ptz sem nedělal nic složitějšího... |
||
xHire Profil |
#7 · Zasláno: 17. 2. 2008, 13:23:53
as tuším není vyžadováno, ale já ho používám, protože to je přehlednější. Tvůj příklad by měl vypadat (pokud bych použil aliasy z mého pojmenování výše): SELECT *, k.nazev as nazev_kosiku, u.nazev as nazev_usera ... (chyběla čárka)
Mrkni kdyžtak do manuálu - pro verzi 5.0 třeba tady: http://dev.mysql.com/doc/refman/5.0/en/join.html. Je to tedy anglicky... V češtině toho asi moc nenajdeš, ale zkusit to můžeš (google). ;c) |
||
Lopyn Profil |
#8 · Zasláno: 17. 2. 2008, 17:20:43
jj dik
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0