有两张表:一张是客户表,一张是订单表,请将客户与购买的订单查询出来
1、穿建表
# 客户表
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
#
INSERT INTO customers (id, name, email)
VALUES (1, 'John Doe', 'john.doe@example.com'),
(2, 'Jane Smith', 'jane.smith@example.com'),
(3, 'Bob Johnson', 'bob.johnson@example.com');
# 订单表
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
product VARCHAR(255),
price DECIMAL(10, 2)
);
#
INSERT INTO orders (id, customer_id, product, price)
VALUES (1, 1, 'Product A', 10.99),
(2, 1, 'Product B', 20.99),
(3, 2, 'Product C', 30.99),
(4, 3, 'Product D', 40.99);
2、解决SQL:
SELECT customers.name, orders.product
FROM customers
LEFT JOIN orders
ON customers.id = orders.customer_id;
3、显示结果:
使用左连接来检索所有客户及其订单(如果有的话),
通过将"customers"表中的"id"列与"orders"表中的"customer_id"列进行匹配。
结果输出显示了所有客户的名称和他们订购的产品,对于没有下订单的客户,显示NULL值。
语法知识:
SELECT
t1.c1, t1.c2, t2.c1, t2.c2
FROM
表1 t1
LEFT JOIN
表2 t2
ON t1.c1 = t2.c1;