如果没有表
,如何选择第一个表连接中的所有数据与第二个表打印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
答案 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
导致丢失的记录被过滤掉。