我刚刚开始学习 MYSQL,虽然我很擅长连接,但我在子查询方面遇到了很多问题。所以我决定多练习。我想找到过去下过订单的客户和他们的 id。该商品的价格必须为 6.5 美元或更高。使用连接这就是我所做的:
SELECT
CUSTOMER_TBL.CUST_ID
, CUST_NAME
FROM
CUSTOMER_TBL
INNER JOIN ORDERS_TBL
ON ORDERS_TBL.CUST_ID = CUSTOMER_TBL.CUST_ID
INNER JOIN PRODUCTS_TBL
ON ORDERS_TBL.PROD_ID = PRODUCTS_TBL.PROD_ID
WHERE PRODUCTS_TBL.COST > 6.5
这是我使用子查询的方法。
SELECT CUSTOMER_TBL.CUST_ID
, CUST_NAME
FROM CUSTOMER_TBL
WHERE
EXISTS (
SELECT *
FROM ORDERS_TBL
WHERE ORDERS_TBL.CUST_ID = CUSTOMER_TBL.CUST_ID
)
正如你所看到的,我开始只包括那些下订单的人。但我无法弄清楚其余的;的订单,仅那些高于 6.5 美元的订单