Jak odrzucić wpisy po specyficznej relacji |
Jak odrzucić wpisy po specyficznej relacji |
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. |
|
|
9.11.2022, 14:57:21
Post
#2
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Wybacz, ale chyba za bardzo uprościłeś, bo ja nawet po kawie nie umiem zrozumieć co chcesz osiągnąć.
|
|
|
9.11.2022, 17:59:38
Post
#3
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) |
Wybacz, ale chyba za bardzo uprościłeś, bo ja nawet po kawie nie umiem zrozumieć co chcesz osiągnąć. Zatem rozpisze to: Mamy 3 tabele: Users -user_id tags: -tag_id -name user_tags: -id -user_id -tag_id mamy dwóch: userów: id = 1, i id = 2. mamy 3 tagi: [1, żółw], [2, pantera], [3, hipopotam]. (cyfra to tag_id a nazwa zwierzecia tag_name) i w user_tags mamy wpisy: 1,1 2,1 1,2 2,3 pierwsza ta user_id a druga tag_id czyli dla żółwia ma połączenie w obu userach. i teraz chciłabym aby gdy wybiore z formularza tag pantera to aby nie pobierał mi użytkowników którzy maja ten tag. Problem polega na tym że gdy wybiore ten tag to i tak mi wyświetli tego użytkownika bo ma powiązania z innym tagiem. (wyswietlam wszystkie tagi jakie ma ten użytkownik) Próbuję to rozwiązać w ten sposób
i na kilka innych sposobów probowałem. Niestety te wpisy które zawierają tylko tag pantera mysql odrzuci natomiast jesli zawiera ten tag i zawiera np. żółwia to go pobierze. A chciałbym żeby te które zawierają połaczenie z pantera zostały odrzucane. Mam nadzieję że wyjaśniłem zrozumiale o co mi chodzi Nie mogę tego zrobić po pobraniu danych i odfiltrować na poziomie PHP musi być podczas zapytania. Ten post edytował Crash89 9.11.2022, 18:04:01 |
|
|
9.11.2022, 23:14:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
|
|
|
10.11.2022, 11:41:57
Post
#5
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) |
Próbowałbym w ten sposób:
Ok dzięki o to mi właśnie chodziło. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 20:52 |