![]() |
![]() ![]() |
![]() |
![]()
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:
tabela galeria:
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...
Myślę, że nie zamotałem zbyt mocno... Proszę o pomoc, bo nie mam pojęcia jak to wykonać.... Pozdrawiam serdecznie, Rytek. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jak dla mnie to masz źle zaprojektowane tabele. W galeriach nie powinieneś zapisywać tytułu i typu platformy tylko id z tabeli segregator. W obecnej sytuacji bowiem galerie są niejednoznaczne i dlatego łączenie musiało by być po dwóch kolumnach jednocześnie. By wykazać braki w tabeli segregator to od niej musisz wychodzić. Więc ona jest pierwsza i dla niej robisz LEFT JOIN po polu tytułu ORAZ galerii, a potem eliminujesz te które mają po takim połączeniu zerowe galerie... czyli id galerrii jest nullem
![]() Ja tutaj dałem wyświetlanie wszystkiego byś widział, że tam są NULLe, ale Tobie się rozchodzi jedynie o id z segregatorów czyli stykło by SELECT s.id ![]() EDIT... Małe przejęzyczenie... łączenie nie po tytule i galerii, ale po tytule i platformie, co zresztą widać w kodzie zapytania ![]() Ten post edytował thek 31.10.2009, 20:37:02 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 14 Dołączył: 21.01.2009 Skąd: Mszczonów Ostrzeżenie: (0%) ![]() ![]() |
Serdecznie dziękuję za pomoc, działa pięknie!
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:53 |