Autor | Zpráva | ||
---|---|---|---|
Daviart Profil |
#1 · Zasláno: 14. 6. 2013, 20:51:44
Níže uvedený dotaz mi funguje dobře, ale jde mi o jeho efektivnější zapsání, jelikož řešení dalším pod dotazem není zrovna nejvhodnější.
Chtěl bych tedy požádat, jestli by mi někdo neporadil efektivnější řešení. mysql_query("SELECT * FROM u, u_sys WHERE u.id_m='".$_SESSION['id']."' AND u_sys.id_u=(SELECT id_u FROM u WHERE id_m='".$_SESSION['id']."' LIMIT 1) ORDER BY dat ",$GLOBALS["link"]); |
||
Tori Profil |
#2 · Zasláno: 14. 6. 2013, 20:55:09
Zkuste tohle, nejsem si jistá, jestli jsem správně pochopila
$sql = "SELECT * FROM u LEFT JOIN u_sys ON u_sys.id_u = u.id_u WHERE u.id_m = '".$_SESSION['id']."' ORDER BY dat"; |
||
Daviart Profil |
Tori:
Díky, mě to zprvu přes Join vypisovalo výsledky znásobené počtem záznamů, teď už je to v pořádku. ----------------------------------------------- Aha, tak nefunguje to jak bych si přál. Sice dotaz vypíše některé záznamy z tabulky 'u' ale již nevypíše samotné pole s 'id_u' ------------------------------------------------ Tak už jsem to vyřešil, pole vypisující se z obou tabulek se kryla, tudíž záznam nešel vypsat. * jsem nahradil dotazem na všechny sloupce. |
||
Tori Profil |
Daviart:
On se ten sloupec jmenuje v obou tabulkách stejně, že? Proto ten později uvedený (z tabulky u_sys) přepíše v PHP ten předchozí. Dejte jednomu z nich alias: SELECT *, u.id_u AS 'id_u2' FROM ... |
||
Daviart Profil |
Tori:
I když přidám alias ke kterémukoliv ze dvou sloupců, data ze sloupce ne a ne vypsat. Nevypíše se ani nahrazený sloupec. Zápis vlastně vůbec nevypisuje žádné hodnoty z tabulky 'u_sys' ale pouze z 'u' ----------------------------------------------------- Nakonec jsem dotaz vyřešil trochu jinak, využil jsem toho, že dvě pole mají stejný název a hodnotu. Funguje jak má. SELECT * FROM u LEFT JOIN u_sys USING (id_u) WHERE u.id_m='".$_SESSION['id']."' |
||
Časová prodleva: 11 let
|
0