以下是一个示例,展示如何使用JOIN而不使用子查询或显式连接来执行查询:
假设我们有两个表,一个是"orders",另一个是"customers"。 orders表包含订单的信息,customers表包含客户的信息。我们想要查询每个订单的订单号、订单日期和客户姓名。
首先,我们创建orders表和customers表,并向其添加一些示例数据:
CREATE TABLE orders ( order_id INT, order_date DATE, customer_id INT );
INSERT INTO orders (order_id, order_date, customer_id) VALUES (1, '2022-01-01', 1), (2, '2022-01-02', 2), (3, '2022-01-03', 1);
CREATE TABLE customers ( customer_id INT, customer_name VARCHAR(50) );
INSERT INTO customers (customer_id, customer_name) VALUES (1, 'John Doe'), (2, 'Jane Smith');
现在,我们可以使用JOIN来执行查询,而不使用子查询或显式连接:
SELECT o.order_id, o.order_date, c.customer_name FROM orders o JOIN customers c ON o.customer_id = c.customer_id;
这将返回以下结果:
1 | 2022-01-01 | John Doe 2 | 2022-01-02 | Jane Smith 3 | 2022-01-03 | John Doe
使用JOIN可以将两个表按特定的列连接起来,然后我们可以选择所需的列进行查询。在这个例子中,我们连接了orders表和customers表,并选择了订单号、订单日期和客户姓名。