Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sprawdzanie czy para kluczy nieistnieje
G4rcU
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 26.11.2008

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


Witam,

cały dzisiejszy dzień borykam się z pewnym problemem, którego pomimo zaciągnięcia do pomocy wujka Google nie jestem w stanie samodzielnie rozwiązać (głównie z powodu trudności w sformułowaniu właściwego opisu problemu).
Zawsze staram się najpierw samemu dojść do rozwiązania, zanim poproszę o pomoc stąd ta porywająca ilość w moim liczniku postów (IMG:style_emoticons/default/wink.gif) .

Mój problem jest następujący:

tabela users zawiera informacje o uzytkownikach

tabela events zawiera informacje o szkoleniach

tabela registrations składa się z pary kluczy primary (user_id, event_id ) gdzie przechowywane sa informacje o wszystkich szkoleniach na ktore zapisal sie uzytkownik, plus dwa dodatkowe pole na ewentualne uwagi oraz timestamp

na stronie mam wydzielony fragment, gdzie jest (powinno być) proponowane pierwsze nadchodzące wydarzenie na które user nie jest zapisany

no i teraz pytanie - jakim zapytaniem to wyłuskać z bazy?


próbowałem tym

  1. SELECT * FROM events
  2. LEFT JOIN registrations
  3. ON
  4. events.event_id <> registrations.event_id
  5. AND registrations.user_id <> 5
  6.  
  7. WHERE events.event_date > NOW()
  8. ORDER BY events.event_date ASC LIMIT 1

ale nie działa to tak jak powinno ;/

nakieruje mnie ktoś na właściwy tor ?

Ten post edytował G4rcU 9.02.2012, 17:16:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
G4rcU
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 26.11.2008

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


sannin, niestety... ;/

DISTINCT zwróci mi każdy niepowtarzający się rekord z tabeli registrations

a, innymi słowy mówiąc, mi chodzi o wyświetlenie wszystkich events, których event_id nie znajduje się w tabeli registrations dla danego usera


//edit

a jednak!
udało się (IMG:style_emoticons/default/smile.gif)

po chwili namysłu okazało się, ze sam sobie odpowiedziałem na swoje pytanie formułując problem innymi słowami

ponizej rozwiązanie:
  1. SELECT DISTINCT * FROM `events`
  2. WHERE event_id NOT IN
  3. ( SELECT event_id FROM `registrations` WHERE user_id = {id usera do znalezienia} )
  4. AND event_date > NOW()
  5. ORDER BY event_date ASC


luckyps oraz sannin dziękuję za naprowadzenie mnie na właściwy tor (IMG:style_emoticons/default/smile.gif)

Ten post edytował G4rcU 9.02.2012, 22:08:17
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 08:46