Autor Zpráva
Suta
Profil
V první tabulce mám seznam všech registrovaných hráčů na stránkách.
Tabulka 1: seznam_uzivatelu
Sloupce: jmeno_uzivatele, treba_email ... atd.

Ve druhé tabulce pak seznam hráčů, kteří jsou aktuálně přihlášení a hrají u nějakého stolu.
Tabulka 2: seznam_hracu
Sloupce: hrac_1, hrac_2, id_stolu atd....

Pozn.: předpokládejme, že hodnoty sloupcu jmeno_uzivatele z první tabulky a hrac_1 ze druhé jsou totožné.


Nemůžu přijít na sql dotaz, který:
vypíše všechny uživatele (z tabulky 1) a u každého, který bude zapsán i ve druhé tabulce (hraje u nějakého stolu) přidá poznámku, že je přihlášený a hraje (u kterého stolu, s kým atd...).

Nebo jinými slovy: když použiji vnořený select v části WHERE, pak mi dotaz vrátí pouze uživatele, kteří budou aktuálně hrát (budou i ve druhé tabulce), já však chci vypsat všechny, ale u těch, kteří budou i ve druhé tabulce chci vypsat určité údaje navíc (z té druhé tabulky)...

Jde to pomocí jednoho sql dotazu? Nikde jsem nenašel, zda-li existuje v sql něco jako "if" ... přidej "něco" ...
Kajman_
Profil *
možná něco jako

select s.jmeno_uzivatele,group_concat(concat_ws(':',h.souper,h.id_stolu)) souperi
from seznam_uzivatelu s
left join (select hrac_1 hraje, hrac_2 souper,id_stolu from seznam_hracu union select hrac_2, hrac_1,id_stolu from seznam_hracu) h
on s.jmeno_uzivatele=h.hraje
group by s.jmeno_uzivatele
Suta
Profil
Kajman_
děkuju, prostuduju
Suta
Profil
Zasílám svou definitivní verzi.

SELECT seznam_uzivatelu.jmeno_uzivatele AS jmeno_uzivatele, seznam_hracu.souper AS jmeno_soupere

FROM seznam_uzivatelu

LEFT JOIN seznam_hracu ON seznam_uzivatelu.jmeno_uzivatele = seznam_hracu.jmeno_uzivatele
Toto téma je uzamčeno. Odpověď nelze zaslat.

0