我的sql使用连接表在表中获取空值

时间:2018-02-16 03:33:55

标签: php mysql

如果没有表

,如何选择第一个表连接中的所有数据与第二个表打印null

表1

|---------------------|------------------|------------------|------------------|
|      id .           |      name        |  success_img     | unsuccess_img
|---------------------|------------------|------------------|------------------|
|          1          |     name1 .      |   success        | unsuccess
|---------------------|------------------|------------------|------------------|  |---------------------|------------------|------------------|------------------|
|          2          |     name2 .      |   success        | unsuccess
|---------------------|------------------|------------------|------------------|

表2

|---------------------|------------------|------------------|------------------|
|      id .           |  condition_id    |  member_id       | add_by
|---------------------|------------------|------------------|------------------|
|          1          |     1 .   .      |   10             | admin
|---------------------|------------------|------------------|------------------|

我想出去

table1.id name success_img unsuccess_img member_id add_by

  1    name1     success      unsuccess      10      admin

  2    name2     success      unsuccess      null      null

我尝试使用

select * from table1 
left join table2 on table1.id = table2.id
where member_id = 10 

此查询仅打印出名称为1的成员ID = 10

1 个答案:

答案 0 :(得分:1)

将where条件移动到on子句:

SELECT *
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.id = t2.id AND
       t2.member_id = 10;

检查member_id子句中的WHERE导致丢失的记录被过滤掉。