Autor Zpráva
ferofenič
Profil *
ahoj, mám napřilklad tabulku A a B ... vypís toho čeho jsem chtěl z tabulky A mám už za sebou... ted potřebuji do každého toho výpisu vložit počet vrácených řádků, pokud se sloupuc1 z tabulky A = sloupec2 z tabulky B , jde to?
Akacko
Profil
ferofenič
určitě. akorát oba sloupce by měli obsahovat totožné hodnoty. např ID
Měsíček
Profil
nevím jestli je to ono a jestli to pomůže, ale zkus si najít něco o JOIN
ferofenič
Profil *
Akacko
Měsíček
a co když se jmenují adreska, adresa ... to budu muset přejmenovat? jinak to nejde?
djlj
Profil
ferofenič
Ne, nemusíš je přejmenovat. LEFT JOIN tabulka1.adresa=tabulka2.adreska
ferofenič
Profil *
no, zkouším to... ale vypíše to všude stejnou hodnotu...

asi by mi pomohlo toto odsud z diskuse:

select
c.*,
count(k.id_textu) pocet_komentaru
from clanky c
left join komentare k
on c.id_clanku=k.id_clanku
group by c.id_clanku

ale moc tomu nerozumím... co je to to c.*?
djlj
Profil
co je to to c.*?
Vybere všechny sloupce z tabulky c; c je aliasem pro tabulky clanky.
ferofenič
Profil *
djlj
aha, takže to odpovídá select * from clanky ?
Joker
Profil
ferofenič
To je jedno, nemusí se jmenovat stejně.

Příklad:
Tabulka tab1: id, nazev
Tabulka tab2: id, id_tab1

a v tab1:
1, "jednicka"
2, "dvojka"

tab2:
1, 1
2, 1
3, 2

a chci vypsat: id (z tab1), nazev a počet řádků z tab2, kde id_tab1 odpovídá sloupci id v tab1.
SQL dotaz:
SELECT tab1.id, tab1.nazev, COUNT(tab2.id) FROM tab1 JOIN tab2 ON tab2.id_tab1=tab1.id GROUP BY tab1.id

Vysvětlení:
Budu vybírat z tab1 a tab2. Tabulky jsou navzájem provázané vztahem: tab2.id_tab1=tab1.id. Výsledkem bude spojená tabulka:
1, "jednicka", 1, 1
1, "jednicka", 2, 1
2, "dvojka", 3, 2
Ale já z toho jednak chci jen některé sloupce, takže je vyjmenuju, hlavně ale chci, aby se neduplikovaly hodnoty z první tabulky, takže seskupím podle řádků první tabulky. Navíc chci, aby se mi zobrazoval počet "seskupených" řádků ze druhé tabulky, k čemuž slouží COUNT.
ferofenič
Profil *
Joker
diky moc, snad to nějak zvládnu... potom zde napíšu

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