Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Wybieranie rekordów bez odpowiedników w drugiej tabeli
rytek
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Witam!

Mam pewien problem, z którym męczę się od kilku dni i nie mogę znaleźć rozwiązania...

Mam dwie tabele:

tabela segregator:

  1. +--+------+-----------+
  2. | id | tytul | opis_plat |
  3. +--+------+-----------+
  4. | 1 | tytul1| PC |
  5. | 2 | tytul1| PS2 |
  6. | 3 | tytul2| PC |
  7. | 4 | tytul2| PS3 |
  8. | 5 | tytul3| PS3 |
  9. ...


tabela galeria:

  1. +-----------+-------------+-----------+
  2. | album_id | album_title | platforma|
  3. +-----------+-------------+-----------+
  4. | 1 | tytul1 | PS2 |
  5. | 2 | tytul2 | PC |
  6. | 3 | tytul2 | PS3 |
  7. ...


Potrzebuje pobrać wszystkie rekordy, które istnieją w tabeli segregator, a nie posiadają odpowiedników w tabeli galeria, by sprawdzić, dla jakich elementów w segregatorze nie dodałem galerii.
Czyli: powinno zwrócić z tabeli segregator rekordy:
1) rekord o id 1, bo w tabeli galeria nie ma rekordu o platformie: PC (pomimo, że jest rekord o album_title: tytul1).
2) rekord o id 5, bo w tabeli galeria nie ma rekordu o tytule tytul3, czyli nie ma również takiego z platformą PC3.

Czyli rozchodzi się o to, żeby zgadzały się wartości obu pól (tytul=album_title I opis_plat=platforma).

No i mam problem, bo udało mi się zrobić, by pobierało te rekordy, które nie mają galerii odpowiadającej tytułowi. Mój kod wygląda tak:


Czyli przykładowo mam w katalogu 5 elementów o tytule elem1 i 5 różnych platformach (PC, PS3, PS2, PSP, X360) itd. Zwraca prawidłowo. Ale... gdy dodam galerię dla np. elem1 i PS3, nie zwraca mi już żadnego rekordu...

  1. CREATE TEMPORARY TABLE gal
  2. SELECT album_id, album_title, platforma
  3. FROM galeria
  4. GROUP BY galeria.album_title
  5.  
  6. SELECT tab2.tytul, tab2.id, tab2.opis_plat
  7. FROM gal tab1
  8. RIGHT JOIN segregator tab2 ON tab2.tytul=tab1.album_title
  9. WHERE tab1.album_title IS NULL
  10. GROUP BY tab2.tytul

Myślę, że nie zamotałem zbyt mocno...

Proszę o pomoc, bo nie mam pojęcia jak to wykonać....

Pozdrawiam serdecznie, Rytek.
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: 14.10.2025 - 23:25