join / left join / right join

时间:2023-03-08 15:56:58
join / left join / right join

1 可以自己join自己

SELECT * FROM table_1 t1
join table_1 t
on t.target_id = t1.target_id
join / left join / right join

2 join要双方都满足才可以出现结果,
left join要先满足左边,先把左边的全部查询出来,然后匹配右边,不能匹配到的,显示null, 如果能匹配到,当然更好了。
right join同理

3 当Join多个表格时,前一个条件筛选出来的结果,只要on的条件满足,则会显示出来 
SELECT * 
FROM table_1 t1
JOIN table_random tr ON t1.target_id = tr.random_id
JOIN table_2 t2 ON t2.id =2
LIMIT 0 , 30

join / left join / right join

还有这样奇葩的sql结果

select * from table_1 t1
join table_random tr on t1.target_id = tr.random_id
join table_2 t2
on t2.id = 2 or t2.id = 3
join / left join / right join
重复了,但可以通过->distinct() 这样的命令来处理。