选择所有表加入的地方

时间:2011-03-11 18:52:54

标签: mysql

两张桌子:

table1  
id | name
1  | aaa
2  | bbb
3  | ccc

table2
id | param
1  | x
1  | z
2  | x

table1.id = table2.id

我需要选择table1中的所有内容,使用字段param(如果有,则为1,如果为,则为0,或者为null),给定param

例如,param“x”:

result:
id | name | param
1  | aaa  | 1
2  | bbb  | 1
3  | ccc  | 0

我所能做的只是:

SELECT table1.id, table1.name, table2.param
FROM table1 
LEFT JOIN table2 ON table1.id = table2.id
WHERE table2.param = 'x'

但它没有选择所有table1 这项任务的正确查询是什么?

1 个答案:

答案 0 :(得分:1)

您正在加入后应用过滤器。试试这个:

SELECT table1.id, table1.name, table2.param
FROM table1 
LEFT JOIN table2 ON table1.id = table2.id and table2.param='x'