mysql里面的左连接和右连接,我感觉都一样啊,比如select * from table1 left join table2 on table1.id=table2.id
如果变成右连接,直接变成select * from table2 left join table1 on table1.id=table2.id就可以了,何必要有right join呢,谢谢各位,请多多指点
如果变成右连接,直接变成select * from table2 left join table1 on table1.id=table2.id就可以了,何必要有right join呢,谢谢各位,请多多指点
一个是从右表返回所有行,即使在左表中没有匹配的行。left join会返回左表中的所有行,然后显示右表中table1.id=table2.id的信息。
right join会返回右表中的所有行,然后显示左表中table1.id=table2.id的信息。你表建的不对,正常是表1中应该建一个table2_id与table2.id进行关联。
你没有这么建,所以感觉不出来结果有什么明显不对。
right join会返回右表中的所有行
insert into a values (1),(2),(3),(4);create table b( y int primary key);
insert into b values (5),(6),(3),(4);然后试一下,看看结果是什么。
select * from table1 left join table2 on table1.id = table2.id
等价于(不考虑字段顺序什么的)
select * from table2 right join table1 on table1.id = table2.id
他认为,所有的right都可以用left来替代
lz问的是right join有什么存在的必要,因为他认为可以用left替代,并举了这个例子。而不是,问这个例子里面,left和right有什么区别。
如果变成右连接,直接变成select * from table2 left join table1 on table1.id=table2.id就可以了,何必要有right join呢,谢谢各位,请多多指点
select * from table2 left join table1 on table2.id=table1.id, table 3 WHERE table1.x = table3.x
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)