Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Jak nie(znaleźć) rekordu, który nie istnieje w drugiej tabeli
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam, utknąłem na prostym zapytaniu SQL ale juz mecze sie 2 godziny z tym, moze tutaj znajdę podpowiedź.

mam 2 tabele, w jednej są notatki, a w drugiej osoby, które już te notatki widziały i nie mogę wyciągnąć osób, które jeszcze nie widziały, wygląda to tak:
loguje się na uzytkownika o id 67 i teraz chcę sprawdzić czy przeczytał on już notatkę, czy nie. Robię to w ten sposób:

  1. SELECT sn.title, sn.notification, sn.ID, snu.user FROM system_notification sn LEFT JOIN system_notification_user snu ON sn.ID = snu.ID WHERE snu.user != 67


bez warunku WHERE wyświelta tytuł, notatkę, ID, a user jest jako NULL

z warukiem nie znajduje rekordów

exclamation.gif Ważne jest chyba również to że tabela system_notification_user jest pusta
mmmmmmm
  1. ELECT sn.title, sn.notification, sn.ID, snu.user FROM system_notification_user snu LEFT JOIN system_notification sn ON sn.ID = snu.ID WHERE sn.user = 67 AND snu.user IS NULL
Pyton_000
Skoro chcesz zobaczyć czy użytkownik 67 przeczytał notatkę to ser = 67.
Jak jest null to znaczy że nie przeczytał, a jak != null to znaczy że przeczytał.
neo1986kk
No tak, tylko że jeżeli nie przeczytał to chciałbym to ID notatki i mu ją wyświetlić, a jak zrobię WHERE user=67, a on nie przeczytał, to nie będę widział jakie jest ID notatki, której nie przeczytał, chyba ze mogłbym w tym zapytaniu zastosować IF, ale raczej nie bardzo
sadistic_son
Jak rozumiem chcesz wyświetlic wszystkie notatki, których dany user NIE CZYTAŁ, tj. w tabeli z notatkami przeczytanymi nie ma jego id w polu ID_USERA_KTORY_CZYTAL_NOTATKE, tak?
  1. SELECT notatki.id_notatki FROM notatki, users, notatki_czytane WHERE notatki_czytane.id_usera_ktory_czytal_notatke!=67 AND notatki.id_notatki = notatki_czytane.id_from_notatki
No bo tutaj występuje relacja wiele do wielu, więc musisz mieć tabelę łączącą userów z notatkami (np. notatki_czytane).
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.