![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy taką sytuację:
TABELA A
TABELA B
Jak zapytać serwer, by zwróciło mi tylko te rekordy, które są w w TABELI A, ale nie ma ich w TABELI B? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
do tabeli A robisz LEFT JOIN tabeli B a potem w warunku WHERE robisz: WHERE TabelaB.user_id is null
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Nie zwraca danych tak jakbym tego chciał.
W kolumnie `#__user`.`range` jest przechowywana ranga użytkownika i potrzebuje pobrać użytkowników tylko tej rangi. Ogólnie to zapytanie powinno brzmieć: Pobierz użytkowników z tabeli #__user oraz #__schoolvirtualdiary_pupils tak, że ich ranga jest równa $pupilRange oraz tak, że nie ma ich jeszcze w tabeli #__schoolvirtualdiary_pupils. Czyli na zbiorze $result = #__user \ #__schoolvirtualdiary_pupils; |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
w ON laczy sie dwie tabele ze sobą, a ty tego nie robisz.
w WHERE miales dac is NULL i tez tego nie widze. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Ok, poradziłem sobie. Zapytanie wygląda ta:
Przeczytałem gdzieś, że można zrobić jeszcze tak, i też działa:
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tylko ze druga wersja prawdopodobnie dluzej sie wykonuje
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:03 |