是否可以在單一 MYSQL 語句中組合子查詢和聯結?
P粉647449444
P粉647449444 2024-04-04 13:00:10
0
1
344

這個問題讓我一頭霧水。我嘗試在 mysql 中使用 Join 和子查詢,但不斷收到語法錯誤。

有問題的陳述是

SELECT Customer.customer_id, Customer.name, Order.address FROM Customer 
WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6") 
INNER JOIN Order ON Customer.customer_id=Order.customer_id;

我嘗試只使用不帶子查詢的查詢,它運作得很好。

SELECT Customer.customer_id, Customer.name, Order.address FROM Customer  
INNER JOIN Order ON Customer.customer_id=Order.customer_id;

刪除連線但保留子查詢也可以。

SELECT Customer.customer_id, Customer.name, Order.address FROM Customer 
WHERE customer_id = (SELECT customer_id FROM Order WHERE customer_id = "625060836f7496e9fce3bbc6")

僅同時使用子查詢和聯結會導致語法錯誤

我似乎找不到錯誤。

我在這裡做錯了什麼。

提前致謝

P粉647449444
P粉647449444

全部回覆(1)
P粉894008490

秘密是正確的語法!

當查詢多個表時,最好使用別名來引用它們,並且在多個表共享相同列名的情況下,字串文字也應該用單引號分隔。

在這個特定範例中,子查詢是多餘的,只需在 where 子句中直接使用字串文字即可。

SELECT c.customer_id, c.name, o.address 
FROM Customer c
JOIN Order o ON c.customer_id = o.customer_id
WHERE c.customer_id = (
  SELECT customer_id 
  FROM Order 
  WHERE customer_id = '625060836f7496e9fce3bbc6'
);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!