SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;2.左外连接(LEFT JOIN):
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;3.右外连接(RIGHT JOIN):
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
4.全外连接(FULL JOIN):
SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;
这些连接查询操作允许您根据需要将表中的数据联合起来,以便进行更复杂的查询和分析。根据连接条件和查询需求,您可以选择适当的连接类型来获取所需的数据。
在数学中,SQL连接查询类似于集合论中的“笛卡尔积”操作。在集合论中,给定两个集合A和B,它们的笛卡尔积是一个集合,其中的每个元素是由一个来自A的元素和一个来自B的元素组成的有序对。在SQL连接查询中,将两个表根据特定的条件(例如列值相等)进行连接,产生的结果类似于笛卡尔积中的元素对,但会根据连接条件进行筛选。
综合来说,这些数学术语与SQL连接查询的不同类型之间有一定的对应关系,但并非完全一致。
在数据库和SQL查询中,笛卡尔积用于连接两个表的所有行,产生一个临时的结果集,其中包含两个表的每一行组合。然后,可以通过添加条件来筛选和限制这个结果集,以获取想要的数据。
然而,实际上很少在数据库查询中直接使用笛卡尔积,因为它可能会导致结果集非常大。通常会使用连接操作(例如INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN)来限制结果集,只返回满足特定条件的数据行。
<!-- 堆代码 duidaima.com --> CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), subject VARCHAR(255), score INT ); INSERT INTO student (name, subject, score) VALUES ('John', 'Math', 90), ('John', 'Math', 80), ('Jane', 'English', 85), ('David', 'Science', 92), ('Emily', 'History', 88), ('Michael', 'Math', 95), ('Sophia', 'English', 78), ('Daniel', 'Science', 89), ('Olivia', 'History', 92), ('William', 'Math', 87), ('Ava', 'English', 93);2、需求
SELECT s1.name FROM student s1 INNER JOIN student s2 ON s1.name = s2.name WHERE s1.subject = 'Math' AND s1.score > 80 AND s2.subject = 'English' AND s2.score > 80;4、查询结果
+---------+ | name | +---------+ | John | +---------+