1、在一个SELECT语句中使用多个表
用法:
SELECT * FROM TABLE_NAME1,TABLE_NAME2
在联合查询时必须要避免笛卡尔积,如:
在user_user表中有6条数据, 在name表中有5条记录。
如果将这两个表用SELECT语句联合查询
SELECT
*
FROM
`test`.`user_user`,
`test`.`name`;
结果会产生笛卡尔积,如下图,结果为30条记录
如果不想产生笛卡尔积,只需增加WHERE子句即可。
如:
SELECT
B.`name`,A.`password`
FROM
`test`.`user_user` A,
`test`.`name` B
WHERE
A.`username` = B.`name`
这种利用两个字段相等的查询叫等值联合,如果遇到两个表的字段名相同但是又想同时查询两表相同的字段时,需要给字段取别名。
如:
有等值联合就有不等值联合,当WHERE子句中使用“=”以外的其他比较运算符连接时就叫不等值联合。
如下:
外联合
外联合是两个不同的表格进行连接,外联合分为左外联合,右外联合
左外联合如下:
右外联合如下:
自联合
顾名思义,就是同一个表自我联合。
如:
以上例子通过自联合查出了subname字段对应的上级
标签:name,联合操作,连表,user,联合,SQL,test,SELECT,等值 From: https://www.cnblogs.com/meng-xiaoyi/p/16988176.html