mysql中from用逗号分隔两个表,是怎么取值的

在Mysql中,我们经常需要同时查询多个表的数据,这时就需要用到FROM关键字来指定要查询的表。当我们使用逗号将多个表名连在一起时,Mysql会将这些表当作一个整体来处理,即将这些表的笛卡尔积结果作为临时表,然后再根据ON条件来筛选符合条件的数据。
语法格式
下面是使用FROM关键字连接两个表的语法格式:
SELECT *
FROM table1, table2
WHERE table1.id = table2.id;
在这个示例中,我们从table1和table2这两个表中查询数据,然后用WHERE关键字来指定两个表中的id字段相等的条件。
示例
假设我们有一个students表和一个scores表,分别记录了学生的信息和成绩信息,现在我们想要查询学生的姓名以及对应的成绩。我们可以使用如下SQL语句来实现:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE scores (
student_id INT,
score INT
);
INSERT INTO students VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
INSERT INTO scores VALUES (1, 90), (2, 85), (3, 88);
SELECT students.name, scores.score
FROM students, scores
WHERE students.id = scores.student_id;
运行上述SQL语句后,我们将得到以下结果:
+--------+-------+
| name | score |
+--------+-------+
| Alice | 90 |
| Bob | 85 |
| Charlie| 88 |
+--------+-------+
在这个示例中,我们通过将students和scores两个表用逗号分隔起来,然后通过WHERE条件将这两个表连接起来,最终得到了学生的姓名和对应的成绩信息。
总结
在Mysql中,使用逗号分隔两个表时,Mysql会将这些表当作一个整体来处理,即将这些表的笛卡尔积结果作为临时表,并根据ON条件来筛选出符合条件的数据。因此,在使用这种表连接方式时,需要特别注意WHERE条件的设定,以确保查询结果的准确性。
极客教程