Autor Zpráva
Duchaplny
Profil
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
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
ShiraNai7:
tak máš smůlu - nejde to
Ale ide - stačí použiť JOIN, alebo UNION
ShiraNai7
Profil
__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
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
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)):
môžeš mi povedať, ako bude vyzerať to volanie jednotlivých údajov napr. v stĺpci "a" ?

EDIT - už to mám.. mal som v html zle navrhnutú tabuľku, v ktorej sa zobrazujú dáta z MySQL.

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: