Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Łączenie z pustą tabelą
Forum PHP.pl > Forum > Bazy danych > MySQL
jastu
Zbudowałem dwie tabele - w jednej są umieszczane są opisy problemów ( każdy zarejestrowany użytkownik może dodpisać swój problem) - a w drugiej umieszczane są odpowiedzi - każdy ma prawo odpowiedzieć . wspólnym polem jest id_problemu .

Jak zapytać :
-wyświetl liste problemów na które nie było jeszcze odpowiedzi ?
Pozdrawiam

Czy komuś przyszło do głowy napisać w jakimś tutorialu ćwiczenie " jak zapytać o coś czego nie ma " worriedsmiley.gif
zezu
Może spróbuj pobrać ID postów które odpowiedzi już mają a w drugim zapytaniu wyświetlić wszystkie które są różne od wcześniej pobranych . Zapytania nie jestem w stanie napisać. sadsmiley02.gif
jastu
Napisałem kilka JOIN`ów ale żaden nie daje właściwego wyniku, Jeśli nie znaję innego rozwiązania to - jak napisałeś tablica ID na które udzielono odpowiedzi i wybranie z bazy tych id których nie ma w tablicy ? Nie można łatwiej questionmark.gif
Pozdrawiam

Nadal tkwię w dołku sad.gif
nospor
  1. SELECT *
  2. FROM Problem
  3. P LEFT JOIN Odpowiedzi O ON O.ID_PROBLEM=P.ID GROUP BY P.ID HAVING count(O.ID_PROBLEM) = 0

Cos w tym stylu, nie mam czasu by przetestowac. pozostawiam to juz Tobie
jastu
To zapytanie wyświetla tylko problemy na które nikt nie odpowiedział i to jest ok.
Chciałbym je tak przerobić aby do tego wyniku dodać zapytania na które nie odpowiedział konkretny użutkownik np id_log='10'
Pozdrawiam i wielkie dzięki za pomoc !
nospor
oj.... no to juz sam powinienes zrobic
  1. SELECT *
  2. FROM Problem
  3. P LEFT JOIN Odpowiedzi O ON (O.ID_PROBLEM=P.ID AND O.id_log=10) GROUP BY P.ID HAVING count(O.ID_PROBLEM) = 0
jastu
Jesteś bogiem... dobry przykład zapytania,ja biedny na to nie wpadłem - dziękuję exclamation.gif!

Modyfikowałem zapytanie i nie uwzględnia mi jednego warunku :

  1. SELECT *
  2. FROM problemy
  3. p LEFT JOIN odpowiedzi o ON (p.id_zgl=o.id_zgl AND p.grupa='oc3' AND o.id_log='$id') GROUP BY p.id_zgl HAVING count(o.id_zgl)=0 ;


Działa dobrze ale nie uwzględnia warunku p.grupa='oc3' . Zwątpiłem

już ok ,wystarczyło zapisać za nawiasem )where p.grupa='oc3'

HA !
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.