这是我遇到的问题:
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。把它整理出来?
有人想到吗?
答案 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子句
时