Autor | Zpráva | ||
---|---|---|---|
anonymníí Profil * |
#1 · Zasláno: 18. 4. 2014, 14:01:00 · Upravil/a: anonymníí
Ahoj,
rovnou ukážu MySQL dotaz, který nefunguje. SELECT t1.sloupce, COUNT(t2.user_id) AS count FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id WHERE t1.active = 1 GROUP BY t2.id"); Pokud nejoinuji tabulku t2, vybere mi to uživatele z t1 (je jich 8). Po přijoinování t2 mi to ale vybere jen uživatele, který mají nějaký záznam i vedle v tabulce t2 (a v count je správná hodnota). Ostatní uživatelé jsou ignorováni. Když vynechám GROUP BY, vrátí mi to pouze jednoho uživatele (přestože záznamy v t2 jsou u dvou uživatelů). Poradíte? Tak doplnění, jsem zmaten: Vypíše mi to všechny uživatele, kteří mají záznam v t2, ale ty bez záznamu mi to zgroupuje dohromady a vypíše tedy pouze jednoho uživatele bez záznamu. Prozatím jsem to vyřešil tímto způsobem, je to správné řešení? GROUP BY (CASE WHEN t2.id IS NULL THEN t2.id ELSE t2.id END) |
||
Kajman Profil |
V group by použijte sloupec z první tabulky - tedy t1.id
|
||
Časová prodleva: 11 let
|
0