Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak odrzucić wpisy po specyficznej relacji
Crash89
post 9.11.2022, 12:45:54
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

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


Witam,

Pierwszy raz się natknąłem na taki problem.
Otóż mam sobie tabele A z połączeniem do tabeli B.

mam połaczenie A.name z B.name (w rzeczywistości jest poprzez id ale tutaj maksymalnie upraszczam).

Moim celem jest odrzucenie wpisów po wprowadzonej tablicy danych.

i problem jest tutaj gdy daje WHERE B.name IS NULL OR B.name NOT IN ($array) to owszem odrzuca ale tylko jesli tabela A ma dokładnie takie same połaczenia do tabeli b jak w tablicy.
Gdy jest jedno więcej połączenie co nie ma w wyrażeniu NOT IN to mi ten wpis pobiera z bazy.

Ogólnie zapytanie wygląda mniej więcej tak.

SELECT A.columns, B.columns FROM A LEFT JOIN B ON A.kolumna_z_b_id = B.id WHERE B.name IS NULL OR B.name NOT IN ($array).

Proszę o jakieś rozwiązanie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Salvation
post 9.11.2022, 23:14:56
Post #2





Grupa: Zarejestrowani
Postów: 344
Pomógł: 70
Dołączył: 15.07.2014

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


Próbowałbym w ten sposób:
  1. SELECT u.* FROM `users` u WHERE u.`id` NOT IN (SELECT ut.`user_id` FROM `users_tags` ut LEFT JOIN `tags` t ON ut.`tag_id` = t.`id` WHERE t.`name` = "pantera");
Go to the top of the page
+Quote Post
Crash89
post 10.11.2022, 11:41:57
Post #3





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

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


Cytat(Salvation @ 9.11.2022, 23:14:56 ) *
Próbowałbym w ten sposób:
  1. SELECT u.* FROM `users` u WHERE u.`id` NOT IN (SELECT ut.`user_id` FROM `users_tags` ut LEFT JOIN `tags` t ON ut.`tag_id` = t.`id` WHERE t.`name` = "pantera");

Ok dzięki o to mi właśnie chodziło.
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.04.2024 - 18:28