Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Unikanie powtórzeń przy pobieraniu
Forum PHP.pl > Forum > PHP
MalyKazio
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);
?
heaven
  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
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-2025 Invision Power Services, Inc.