Autor Zpráva
Lumin161
Profil
Zdravím,

potřebuji k datům ze dvou sloupců jedné tabulky spárovat data z jednoho sloupce
z druhé tabulky. Jde o to spárovat evidenční čísla a k nim přiřazená ID (asi to
vypadá jako nesmysl, ale stejná evidenční čísla mohou označovat různé
jednotky).
V principu správná data k jednomu sloupci přiřadím, k druhému se mi to už
nedaří. Vypadá to zatím asi takto:



SELECT tabulka1.*, tabulka2.* from tabulka1

LEFT JOIN
tabulka2 ON tabulka1.evidence = tabulka2.evidence


tuším, že bude následovat další left join, ale jak to přesně napsat nevím...

Díky za radu
Taps
Profil
SELECT tabulka1.*, tabulka2.*,tabulka3.* from tabulka1
LEFT JOIN
tabulka2 ON tabulka1.evidence = tabulka2.evidence
LEFT JOIN
tabulka3 ON tabulka1.id=tabulka3.id
Lumin161
Profil
Mám tabulky jen dvě... Zkusím to vysvětlit trošku líp.

Vypisuje se mi to takto: http://www.mhd-olomouc.cz/MOSD/test-funkci
Uživatel zapíše evidenční čísla, já potřebuji, aby si to našlo z databáze ID podle evidenčního čísla.
Tzn. left join nejprve na první vůz, poté left join na druhý vůz. Soupravy se totiž zapisují do dvou sloupců (první sloupec první vůz, druhý sloupec druhý vůz).
Se třemi tabulkami tedy neoperuji. To bych zvládl :)
ninja
Profil
SELECT t1.*, t2.*, t3.* from tabulka1 t1
LEFT JOIN
tabulka2 t2 ON t1.ev_id_primary = t2.ev_id
LEFT JOIN
tabulka2 t3 ON t1.ev_id_secondary=t3.ev_id
peta
Profil
tabulka1.*, tabulka2.* - to napsat nemuzes, protoze obe tabulky obsahuji stejne nazvany sloupec tabulka1.evidence = tabulka2.evidence, musis k tomu udelat alias pres AS a tudiz vypsat kazdy sloupec z kazde tabulky

Mno, a jestli to spravne chapu, tak chces z dotazu vratit pro 2 vozidla 1 radek tabulky se dvema sloupci?
vstup = 12345
vystup = id (tab1) AS id1, id (tab2) AS id2

A nebo chces z dotazu 2 radky, pro kazdou tabulku zvlast?
vstup = 12345
vystup[0] = id (tab1)
vystup[1] = id (tab2)

A nebo chces spojit vsechno do jedne bunky pomoci CONCAT_WS?
vstup = 12345
vystup = 'id (tab1)', ',', 'id (tab2)' AS idecka

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