CREATE TABLE tdb_goods_brands(
brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
brand_name VARCHAR(40) NOT NULL
)
SELECT brand_name FROM tdb_goods GROUP BY brand_name;
连接类型
INNER JOIN,内连接
在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的。
LEFT [OUTER] JOIN,左外连接
RIGHT [OUTER] JOIN,右外连接
连接条件
使用ON关键字来设定连接条件,也可以使用WHERE来代替。
通常使用ON关键字来设定连接条件,
使用WHERE关键字进行结果集记录的过滤。
仅显示左表及右表符合连接条件的记录
内连接
显示左表及右表符合连接条件的记录SELECT 表1.列名, 表2.列名 FROM 表名1 INNER JOIN 表名2 ON 表1.列名= 表2.列名;
左外连接 显示左表的全部记录及右表符合连接条件的记录 SELECT 表1.列名, 表2.列名 FROM 表名1 LIFT JOIN 表名2 ON 表1.列名= 表2.列名; 右外连接 显示右表的全部记录及做表符合连接条件的记录 SELECT 表1.列名, 表2.列名 FROM 表名1 RIGHT JOIN 表名2 ON 表1.列名= 表2.列名; 三表联查后面在跟一个INNER JOIN SELECT 表1.列名, 表2.列名,表3.列名 FROM 表名1 INNER JOIN 表名2 ON 表1.列名= 表2.列名 INNER JOIN 表名3 ON 表1.列名= 表3.列名; 外连接 ALTER JOIN B join_condition 数据表B的结果集依赖数据表A。 数据表A的结果集根据左连接条件依赖所有数据表(B表除外)。 左外连接条件决定如何检索数据表B(在没有指定WHERE条件的情况下)。 如果数据表A的某条记录否和WHERE条件,但是在数据表B不存在否和连接条件的记录,将生成一个所有列为空的额外的B行。 自身连接 同一个数据表对其自身进行连接
SELECT
s.列名,
p.列名
FROM
表名1 AS s
LEFT JOIN 表名1 AS p
ON s.`列名` = p.`列名`;
分组查询
GROUP BY 列名 分组条件 HAVING 条件 条件列必须出现在查询字段上,否则需要聚合函数 SELECT `列名` FROM 表名HAVING COUNT(列名) > 5;Mysql查询语句
标签:生成 个数 分组查询 cond 类型 unsigned com query esc