从没有听说过semi join
1个回答
用法如下
SELECT * FROM tab1 LEFT SEMI JOIN tab2 ON (tab1.id = tab2.id);
left semi join和left outer join相似,也和inner join有点相似。但left semi join只返回tab1中的列,不是完整的join,所以是semi join
和left outer join相似:因为left semi join只返回左表里的
和inner join相似:因为left semi join不返回右边里没有的
比如tab1,tab2是
它们inner join的结果是
它们left join的结果是
它们left semi join的结果是
因为表tab1中只有一个id=2,尽管tab2中有多个id=2,我们也只匹配一个,最后返回的时候只得到tab1中的列