mysql左连接、右连接和内部连接
表表1;
创建表`安得烈` ` `表。
(
`名字` varchar(32)不为空,
`市` varchar(32)不为空
)
MyISAM引擎=;
插入表(名称、市)值('person ','bj);
插入表(名称、市)值('person B,'bj);
插入表(名称、市)值('person C,'sh);
插入表(名称、市)值('person D','sz);
承诺;
表表;
创建表`安得烈` ` `表。
(
`名字` varchar(32)不为空,
`市` varchar(32)不为空
)
MyISAM引擎=;
插入表(名称、市)值('person W,'bj);
插入表(名称、市)值('person X,'sh);
插入表(名称、市)值('person Y,'sh);
插入表(名称、市)值('person Z,新泽西州);
承诺;
1。外部连接-左连接结果
表1是左,所以叫左连接。在这种情况下,所有的记录在表如下表。有三例:
A.对应于每个记录在表1城市对中表就只有一个,那将是
在返回的结果中形成了一个新的记录。
B.在表的所有记录,如果对应表的城市也就和N,将形成在返回结果的新纪录。在C以上情况的人。
C.对应的表中的每条记录的城市不在表的存在,然后形成一个在返回的结果。
记录右边的一个新记录和所有null。
不符合上述三项规则的记录将不列入名单。
2。外部连接-右连接结果
表是正确的,所以它是正确的连接。在这种情况下,所有的记录在表如下表。有三例:
A.对应于每个记录在表市是正确的,只是一个表,然后将
在返回的结果中形成了一个新的记录。
B.在表的所有记录,如果对应表市也对N,将形成在返回结果的新纪录。在W以上的人的情况。
C.对应每个记录在表2城市不在表中存在,然后形成一个回归的结果。
记录左边的一个新记录和所有null。
不符合上述三项规则的记录将不列入名单。
三.内部连接
在内部连接的数据记录,没有的情况下,字段为空,很容易认为内部链接的结果是从现有的现场记录在左或右连接结果无效去除效果。甚至可以认为,如果两表剩下的只有在连接操作的数据记录,如表1、人和B人C,表2 W,X人只有人与人Y,然后左、右连接连接的结果之间的两个表是一样的。
注:SELECT * FROM表内加入表B a.city = b.city和SELECT * FROM表联接表B a.city = b.city效果是相同的,如果加入没有如左、右或内这样的关键字,默认的连接。此外,MySQL不支持全连接。