Autor Zpráva
Marek_
Profil *
Potreboval bych poradit se SELECTEM z databaze.

V tabulce mam tyto data:
+-------------------------------------
| kategorie
+-------+--------+-----------------
|id_kat | nadr | nazev
+-------+-------+-----------------
| 1 | 0 |kategorie 1
| 2 | 1 |kategorie 2
| 3 | 1 |kategorie 3

Potreboval bych vypsat vsechny data z tabulky tak, aby sloupec nadr nevypisoval ulozene cislo, ale rovnou nazev nadrazene kategorie. Takze na radku 2 by se melo vypsat:

id_kat: 2
nadr: kategorie 1
nazev: kategorie 2

U tretiho radku je vypis podobny a prvni radek nema nadrazenou kategorii - nemelo by se vypsat nic.
Taps
Profil
Marek:
Podle mě to zavání špatně navrženou strukturou databáze
Marek_
Profil *
Taps:
tento dotaz nefunguje, pise chybu:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in ...
Medvídek
Profil
Marek:
SELECT s.id_kat, s.nazev, (SELECT nazev FROM tabulka WHERE id_kat = s.nadr) nadr
FROM tabulka s
Každopádně to zavání opravdu špatným návrhem.
Marek_
Profil *
Medvídek:

Diky, tohle funguje.

Jeste bych potreboval pripojit jinou tabulku. Myslel jsem, ze pouziju LEFT JOIN, ale bud delam neco spatne a nebo je na to jiny figl. Proste mi to nejde ...


SELECT s.id_kat, s.nazev, (SELECT nazev FROM tabulka WHERE id_kat = s.nadr) nadr
FROM tabulka s LEFT JOIN jinatabulka ON tabulka.id_kat=jinatabulka.sloupec1

toto mi nefunguje
Medvídek
Profil
Marek:
Mělo by fungovat:

SELECT s.id_kat, s.nazev, (SELECT nazev FROM tabulka WHERE id_kat = s.nadr) nadr, t.*
FROM tabulka s
LEFT JOIN jinatabulka t ON s.id_kat = t.sloupec
Marek_
Profil *
Medvídek:

Diky moc, tohle funguje a mam to kompletni.
Mohl bych poprosit jeste male vysvetleni toho dotazu abych to umel pouzit i v jinych pripadech ?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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