Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Unikanie powtórzeń przy pobieraniu, danych z kilku tabel
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam,

Chcę zrobić system powiadomień o zmianach danych w bazie. Powiadomienia miałyby być z różnych tytułów np: po pierwsze: powiadomienia o zmianie danych psów, które użytkownik wybrał jako ulubione, po drugie: tych, które obserwuje. I teraz moje pytanie brzmi: jak wyciągnąć z dwóch tabel adresy e-mail, żeby się nie powtarzały? Przykład:
Zmieniają się dane psa X. Mam tabelę ulubione i stamtąd wyciągam użytkowników, którzy mają tego psa w swoich ulubionych i ich maile. Dalej wyciągam te same dane z drugiej tabeli, w której są zapisane dane użytkowników, którzy obserwują tego psa i ich maile. Maile z drugiej tabeli mogą się pokrywać z tymi z pierwszej. Jak zrobić drugie zapytanie, aby wyciągało tylko te maile, które nie zostały już wybrane przy pobieraniu z pierwszej tabeli? Odpada rozwiązanie polegające na tym, że nie dodaje do obserwowanych jeśli ktoś ma tego psa już w ulubionych bo wtedy po usunieciu z ulubionych znikałoby też z obserwowanych a tego nie chcę.
Czy wykorzystanie czegos takiego ma sens:
SELECT mail FROM obserwowane WHERE pies=X NOT IN (SELECT mail FROM ulubione WHERE pies=1);
?
Go to the top of the page
+Quote Post
heaven
post
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


  1. SELECT DISTINCT(mail) FROM .......


ale dalej to juz nie wiem jak. ja bym to chyba zrobil tak

pobral na poczatku wszystkie maile z obserwowanych


  1. SELECT mail FROM obserwowane WHERE pies=X


a nastepnie te ktore sa w ulubinych a nie ma w obserwowanych

  1. SELECT u.mail FROM ulubione u WHERE u.pies=X AND u.mail NOT IN (SELECT o.mail FROM o.obserwowane WHERE o.pies=X)



to sa 2 zapytania ale chyba rozwiazuja twoj problem

Ten post edytował heaven 17.12.2006, 17:44:53
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 26.09.2025 - 13:31