MySQL:表-B的一部分 - 表B的连接部分

时间:2010-12-12 20:08:59

标签: mysql join

这是我遇到的问题:

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”排除了 表A:表B中不存在的行包括
表B:所有条件= 0排除

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可以使用condition = 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中没有的表A中的项目,我想要这些项目。

它可以在MySQL内部,还是我需要脚本lang。把它整理出来?

有人想到吗?

1 个答案:

答案 0 :(得分:4)


我一定有过温度。黑掉。
这是:

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

是关键,当置于连接条件而不是where子句