Autor Zpráva
ciba
Profil *
ahoj, prosím o radu,
mám dvě tabulky, jedna obsahuje informace o dokumentech, druhá o uživatelích. V tabulce 'dokumenty' mám pole "vystavil" a "schválil". Obě pole se odkazují na kód uživatele z tabulky 'uživatelé'. Dá se jedním dotazem načíst jméno a příjmení jak toho, kdo dokument vystavil, tak toho, kdo ho schvaluje ?
Tedy mohou být jakesi dva JOINY (dokumenty.vystavil=uzivatele.kod) a (dokumenty.schvalil=uzivatele.kod) ??? vypadá to nefunkčně :)
díky Petr
Charlie
Profil
jasne,

SELECT * from uzivatele u, dokumenty d,  WHERE d.vystavil = u.kod AND d.schvalil = u.kod
ciba
Profil *
díky, vypadá to dost zajímavě na to, aby to mohlo fungovat :)
tak ne, trochu jsem to upravil "na skutečnost", ale nelibi se mu syntaxe ... :(

You have an error in your SQL syntax near 'WHERE d.vystavil = u.username AND d.schvalovatel = u.username LIMIT 0, 30' at line 3
ciba
Profil *
aha, ta carka za dokumenty d se mu nelíbila ...
v jakém formátu je ale odpověď ? používám mysql_fetch_array ...
Charlie
Profil
y d, W
- tam nema bejt ta carka
Charlie
Profil
v jakém formátu je ale odpověď

normalne, dostanes pole:

$array['username'], $array['schvalovatel']....
ciba
Profil *
takhle ale dostávám ty záznamy, kde se vystavil a schvlovatel shoduje, já bych potřeboval načíst něco jako schvalovatel.jmeno, schvalovatel.prijmeni, vystavil,jmeno a vystavil.prijmeni, kdy to neudelal obojí jeden člověk, ale různí uživatelé ...
Charlie
Profil
aha, tak s tim ti neporadim
ciba
Profil *
nevadí, díky za snahu :)
printf
Profil *
těm shodnejm názvum se musí dát alias (nebo jak se tomu říká). Třeba takhle:

SELECT schvalovatel.jmeno AS sjmeno, schvalovatel.prijmeni AS sprijmeni, vystavil.jmeno AS vjmeno, vystavil.prijmeni AS vprijmeni FROM ...
Honza Hučín
Profil
Myslím, že to chápu. Potřebuješ propojit tabulku "dokumenty" do tabulky "uzivatele" dvakrát. To lze, uvedeš dvakrát tabulku uzivatele, akorát pokaždé s jiným aliasem. Viděl bych to takhle:

SELECT a.prijmeni as schvalil_prijmeni, b.prijmeni as vystavil_prijmeni
FROM uzivatele as a, uzivatele as b, dokumenty
WHERE a.kod=dokumenty.schvalil And b.kod=dokumenty.vystavil;

Propojení pomocí JOINů je samozřejmě rychlejší, ale takhle je to zase přehlednější.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0