Autor Zpráva
hunter_dave
Profil
Zdravím,

už si vážně nevím rady. Potřeboval bych mySQL dotaz, který by dokázal abecedně seřadit výpis z databáze podle údajů jiné tabulky než té ze které vypisuji.

Příklad:
Tabulka auta:
id | název | ridic
1 | auto1 | 2
2 | auto2 | 1

Tabulka ridici:
id | název
1 | petr
2 | adam

Bohužel něco jako : SELECT * FROM auta ORDER BY ridici.nazev nefunguje

Dokázal by mi někdo pomoct?
juriad
Profil
SELECT auta.* FROM auta JOIN ridici ON auta.ridic = ridici.id ORDER BY ridici.nazev
hunter_dave
Profil
diky moc :) .. ještě bych potřeboval pomoc s tím když cizí klíč je umístěn v jiné tabulce
To znamená:
auta:
id | nazev
1 | auto1
2 | auto2

auta-vs-ridici:
auto | ridic
1 | 2
2 | 1

ridici:
id | název
1 | petr
2 | adam
Kajman
Profil
Uděláte obdobně další join s odpovídající vazební podmínkou.

auta JOIN `auta-vs-ridici` ar ON auta.id = ar.auto
     JOIN ridici ON ar.ridic = ridici.id
hunter_dave
Profil
diky moc oboum :) hodne jste mi pomohli


Přece jenom ještě potřebuju vyřešit malý problém, dalo by se nějak do toho sql příkazu přidat aby se bral jenom první řidič z té tabulky .. v případě že k autu je přiřazeno více řidičů


Jde pouze o seřazení .. chtěl bych to řadit podle jména prvního přiřazeného řidiče
juriad
Profil
mohlo by fungovat následující
SELECT auta.* 
FROM auta JOIN `auta-vs-ridici` ar ON auta.id = ar.auto JOIN ridici ON ar.ridic = ridici.id
GROUP BY auta.id # jeden záznam pro každé auto
ORDER BY MIN(ridici.nazev)
hunter_dave
Profil
Díky moc, to je přesně to co jsem potřeboval :) .. ušetřil jste mi spoustu času, nevěděl jsem si rady.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: