Autor Zpráva
Daviart
Profil
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
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']."'

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:

0