Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Jak nie(znaleźć) rekordu, który nie istnieje w drugiej tabeli
neo1986kk
post 13.05.2015, 12:16:27
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


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

Ten post edytował neo1986kk 13.05.2015, 12:18:00
Go to the top of the page
+Quote Post
mmmmmmm
post 13.05.2015, 12:24:20
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  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
Go to the top of the page
+Quote Post
Pyton_000
post 13.05.2015, 12:25:40
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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ł.
Go to the top of the page
+Quote Post
neo1986kk
post 13.05.2015, 12:29:52
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


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
Go to the top of the page
+Quote Post
sadistic_son
post 14.05.2015, 12:25:42
Post #5





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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).

Ten post edytował sadistic_son 14.05.2015, 12:30:04


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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: 1.06.2025 - 10:29