/ / MySQL: część tabeli - dołącz część tablicy B - mysql, join

MySQL: część tabeli - dołącz część tablicy B - mysql, join

Oto mój problem:

Tabela A id_a | imię --------------------- 1 | Nazwij 2 | imię-B 3 | imię-C 4 | o nazwie 5 | imię-E 6 | spcial_type
Tabela B id_b | id_a | warunek |podtyp ------------------------------------------------- 1 | 2 | 1 | 1 2 | 1 | 0 | 1 3 | 1 | 1 | 2 4 | 2 | 0 | 1 5 | 4 | 0 | 1 6 | 5 | 1 | 1 7 | 2 | 1 | 3

Warunki:
Tabela A: wykluczono "special_type"
Tabela A: wiersze nie uwzględnione w tabeli B
Tabela B: wszystkie z warunkiem = 0 wyłączone

Tabela wyników: id_r | id_a | id_b | imię | stan ----------------------------------------------- 1 | 1 | 3 | imię-A | 1 2 | 2 | 1 | imię-B | 1 3 | 5 | 6 | imię-E | 1 4 | 2 | 7 | imię-B | 1 5 | 3 | null | imię-C | zero

tabela A.subtype to tylko aux. aby pokazać, że id_a może być przechowywany wiele razy z warunkiem = 1

Co próbowałem:

wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a

ale to przyniosło mi itemy z condition = 0, których nie chcę

więc próbowałem:

wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a gdzie z.condition = 1

ale ten pomysł wykluczał elementy z Tabeli A, których nie ma w Tabeli B, i chcę te elementy.

Czy to może być wewnątrz MySQL, czy też potrzebuję skryptowego języka. to rozwiązać?

Ktoś myśli?

Odpowiedzi:

4 dla odpowiedzi № 1

ok
Musiałem mieć tymczasową. zaciemniać.
Oto ona:

wybierz x.id_a, x.name, z.id_b, z.id_a, z.condition z tabeli A LEFT JOIN Tabela z ON x. id_a = z. id_a AND z.condition = 1

warunek poniżej

AND z.condition = 1

był kluczem, gdy został umieszczony w warunku łączenia, a nie w klauzuli where