Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Łączenie z pustą tabelą, zapytanie o nie utworzone dane
jastu
post 17.05.2006, 08:02:29
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


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

Ten post edytował jastu 17.05.2006, 08:46:41


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
zezu
post 17.05.2006, 09:03:09
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
jastu
post 17.05.2006, 10:10:56
Post #3





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


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

Ten post edytował jastu 17.05.2006, 13:38:18


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
nospor
post 17.05.2006, 12:08:35
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jastu
post 17.05.2006, 13:46:14
Post #5





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


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 !


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
nospor
post 17.05.2006, 13:52:48
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jastu
post 17.05.2006, 14:00:03
Post #7





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


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 !

Ten post edytował jastu 17.05.2006, 14:36:02


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:11