join / left join / right join

1 可以自己join自己

SELECT * FROM table_1 t1
join table_1 t
on t.target_id = t1.target_id

 

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 30

 还有这样奇葩的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

重复了,但可以通过->distinct() 这样的命令来处理。

posted @ 2016-12-08 15:18  qqisnow2021  阅读(238)  评论(0编辑  收藏  举报