Autor | Zpráva | ||
---|---|---|---|
Duchaplny Profil |
#1 · Zasláno: 9. 5. 2011, 13:32:35
Zdravím,
prosím Vás, ako sa dajú tieto 4 požiadavky na SELECT, zapísať do jedného dotazu: SELECT meno AS 'a' FROM tab1 WHERE zaznam='a' SELECT meno AS 'b' FROM tab1 WHERE zaznam='b' SELECT meno AS 'c' FROM tab1 WHERE zaznam='c' SELECT meno AS 'd' FROM tab1 WHERE zaznam='d' Bohužiaľ UNION mi zoskupí všetky dáta hneď v tom prvom stĺpci "a". Ja ich potrebujem rozdeliť na stĺpce "a", "b", "c", "d" a príslušné dáta pridať do príslušného stĺpca. |
||
ShiraNai7 Profil |
#2 · Zasláno: 9. 5. 2011, 13:45:16
SELECT meno,zaznam FROM tab1 WHERE zaznam IN('a','b','c','d') Takhle máš jedno jméno + záznam na řádek.. pokud to chceš mít všechno v jednom řádku, tak máš smůlu - nejde to. Ale jeden dotaz to je. |
||
__construct Profil |
#3 · Zasláno: 9. 5. 2011, 14:08:41
ShiraNai7:
„tak máš smůlu - nejde to“ Ale ide - stačí použiť JOIN , alebo UNION …
|
||
ShiraNai7 Profil |
#4 · Zasláno: 9. 5. 2011, 14:28:24
__construct:
„UNION…“ Union ne, ten bere názvy sloupců podle prvního selectu. „JOIN“ Tím to jde, ale je to teda děsná praktika jen kvůli tomu, že se mu z nějakého důvodu nechce si výsledné řádky projet cyklem a dostat si z něj, co potřebuje. SELECT `tab1_1`.`meno` AS `a`, `tab1_2`.`meno` AS `b`, `tab1_3`.`meno` AS `c`, `tab1_4`.`meno` AS `d` FROM `tab1` JOIN `tab1` AS `tab1_1` ON `tab1_1`.`zaznam` = 'a' JOIN `tab1` AS `tab1_2` ON `tab1_2`.`zaznam` = 'b' JOIN `tab1` AS `tab1_3` ON `tab1_3`.`zaznam` = 'c' JOIN `tab1` AS `tab1_4` ON `tab1_4`.`zaznam` = 'd' LIMIT 1; |
||
Duchaplny Profil |
#5 · Zasláno: 9. 5. 2011, 14:46:27
v tom WHERE je podmienka, keď stĺpec v databáze obsahuje "a", tak to vypíš do stĺpca (aliasu) a, keď obsahuje "b", tak to vypíš do stĺpca "b", atď.. ono to potom ide do cyklusu a tam to chcem ťahať už len podľa tých aliasov..
|
||
Duchaplny Profil |
#6 · Zasláno: 9. 5. 2011, 16:39:20 · Upravil/a: Duchaplny
ShiraNai7:
> SELECT meno,zaznam FROM tab1 WHERE zaznam IN('a','b','c','d') > Takhle máš jedno jméno + záznam na řádek.. pokud to chceš mít všechno v jednom řádku, tak máš smůlu - nejde to. Ale jeden dotaz to je. Keď použijem túto metódu: $sql = mysql_query("SELECT meno,zaznam FROM tab1 WHERE zaznam IN('a','b','c','d')"); while ($zaznam=mysql_fetch_array($sql)): EDIT - už to mám.. mal som v html zle navrhnutú tabuľku, v ktorej sa zobrazujú dáta z MySQL. |
||
Časová prodleva: 13 let
|
0