这个张文主要介绍了一个MySQL多表查询的具体例子。文中详细介绍了样例代码,对大家的学习或工作有一定的参考学习价值。需要它的朋友将和边肖一起学习。
1.使用SELECT子句的多表查询
从表1、表2 …表1中选择字段名。field=表2。字段和其他查询条件
1选择a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id
注:在上面的代码中,两个表的关联是在两个表的id字段信息相同的情况下建立的,但实际开发中不应该用到,最好使用主键和外键约束。
其次,使用表的别名来查询多个表
比如:
1选择a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 a,TB _ demo 065 _ tel b WHERE a . id=b . id AnD b . id=' $ _ POST[textid]'
在SQL语言中,有两种方法可以为表分配别名
第一个由关键字AS指定,例如
1选择a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,TB _ demo 065 _ tel AS b WHERE a . id=b . id
第二种是直接在表名后面添加表的别名
1选择a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 a,tb_demo065_tel b WHERE a.id=b.id
使用表格别名应注意的几个问题
别名通常是一个缩短的表名,用于在连接中引用表中的特定列。如果连接中的多个表中存在同名列,则列名必须由表名或表别名限定
如果定义了表的别名,则不能再使用表名
三重合并多个结果集
在SQL语言中,多个SELECT语句的查询结果可以通过UNION或ALL组合输出。这两个关键词的使用说明如下:
UNION:可以用这个关键字组合多个SELECT语句的查询结果,删除重复的行
ALL:可以使用此关键字合并并输出多个SELECT语句的查询结果,但不会删除重复的行
当使用UNION或ALL关键字合并和输出多个表时,查询结果必须具有相同的结构和兼容的数据类型。此外,在使用UNION时,两个表中的字段数量必须相同,否则,将提示SQL语句出现错误。
1e.x:SELECT id,name,pwd FROM TB _ demo 067 UNION SELECT uid,price,date FROM tb_demo067_tel
四个简单的嵌套查询
子查询:是一个SELECT查询,它返回一个值,嵌套在SELECT、INSERT、UPDATE和DELETE语句或其他查询语句中。
1选择id、姓名、性别、日期从tb_demo068中的位置id(选择id从tb_demo068中的位置id='$_POST[test]')
内部联接:将查询结果作为WHERE子句的查询条件,称为内部联接
五个复杂的嵌套查询
多个表之间的嵌套查询可以通过谓词IN实现,语法格式如下: