MYSQL SELECT JOIN条件

时间:2015-09-15 09:38:29

标签: php mysql

我正在处理一个棘手的问题并且不理解如何处理它,因为JOIN都没有给我理想的结果。

我有两张桌子:

Table1:
id
value

Tabel2:
id
table1_id
parameter (1,0)
value

我需要从Table_1中选择所有内容,但如果Table2中有一行,其中table1_id = table1.id和parameter = 1,我想在结果中包含table2.value。请注意,Table2中可能有多个行table1_id = table1.id,但只有一个参数= 1。

所以,我希望得到的结果

table1.id | table1.value | table2.parameter |table2.value
    1     |      v1      |                  |      
    2     |      v1      |         1        |      v2
    3     |      v1      |                  |      
    4     |      v1      |         1        |      v2

有人可以帮我查询。谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM
  Table1 LEFT JOIN Table2
  ON (Table1.id = Table2.table1_id AND Table2.parameter = 1)
;

答案 1 :(得分:1)

您可以使用left joincase when来展示table2 value

select
t1.id,
t1.value,
t2.parameter,
case when t2.table_id is not null and t2.parameter = 1 then t2.value else null end as table2_value
from table1 t1
left join table2 t2 on t2.table1_id = t1.id