2010-12-12 3 views
1

Вот проблема у меня есть:
MySQL: часть таблицы-A присоединиться часть таблицы-B

 
Table A 
id_a | name 
--------------------- 
1 | name-A 
2 | name-B 
3 | name-C 
4 | name-D 
5 | name-E 
6 | spcial_type 
 
Table B 
id_b | id_a | condition | subtype 
------------------------------------------------- 
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 

Условия:
Таблица A: «special_type» exluded
Таблица A: строки нет в таблице B, включенных
Таблица B: все с условием = 0 exluded

 
Result Table: 
id_r | id_a | id_b | name | condition 
----------------------------------------------- 
1 | 1 | 3 | name-A | 1 
2 | 2 | 1 | name-B | 1 
3 | 5 | 6 | name-E | 1 
4 | 2 | 7 | name-B | 1 
5 | 3 | null | name-C | null 

Таблица A.subtype - только aux. чтобы показать, что id_a можно хранить много раз с условием = 1

Что я пробовал:

 
select x.id_a, x.name, z.id_b, z.id_a, z.condition from Table A 
LEFT JOIN Table z ON x. id_a = z. id_a 

, но это заставило меня элементы с условием = 0, что я не хочу

поэтому я попытался :

 
select x.id_a, x.name, z.id_b, z.id_a, z.condition from Table A 
LEFT JOIN Table z ON x. id_a = z. id_a where z.condition=1 

но эта идея исключает элементы из таблицы A, отсутствующие в таблице B, и я хочу эти предметы.

Может ли это быть внутри MySQL, или мне нужен скриптовый язык. разобраться?

Мысли кто-нибудь?

+0

Это не для меня ясно, что ваш ожидаемый результат, и запросы несовместимы с описанными таблицами. –

+0

Они (q v. T) выглядят нормально ко мне .. и после смены .. отлично работают – Jeffz

ответ

3

OK
У меня, должно быть, была температура. черный.
Вот оно:

 
select x.id_a, x.name, z.id_b, z.id_a, z.condition from Table A 
LEFT JOIN Table z ON x. id_a = z. id_a AND z.condition=1 

состояние ниже

 
AND z.condition=1 

был ключ, когда помещен в условие соединения не в том, где пункт

Смежные вопросы