首页 > 解决方案 > 为什么我在 MySQL 中的 CONCAT 函数会导致语法错误?

问题描述

SELECT CONCAT(PurchaseID, OnlineType, ShopLocation) As Purchase
FROM PURCHASE 
WHERE PurchaseID IN 
(
  SELECT PurchaseID
  FROM ONLINEPURCHASE 
(
  WHERE PurchaseID IN (SELECT PurchaseID 
  FROM WALKINPURCHASE
)
);

我正在尝试放置一个 concat 来显示在 OnlineType 和 Shoplocation 中输入的 PurchaseID

Error
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
WHERE PurchaseID IN (SELECT PurchaseID 
FROM WALKINPURCHASE

标签: mysql

解决方案


你有一个太多了

SELECT CONCAT(PurchaseID, OnlineType, ShopLocation) As Purchase
FROM PURCHASE 
WHERE PurchaseID IN 
(
  SELECT PurchaseID
  FROM ONLINEPURCHASE     
  WHERE PurchaseID IN 
    (SELECT PurchaseID 
    FROM WALKINPURCHASE
    )
);

您应该尝试对齐代码,以便您可以在一个视图中看到这些块。

但是你应该试试这个 Select 语句

SELECT CONCAT(p.PurchaseID, op.OnlineType, p.ShopLocation) As Purchase
FROM PURCHASE p 
  inner join  ONLINEPURCHASE op 
    ON p.PurchaseID = op.PurchaseID 
  inner join WALKINPURCHASE w 
    ON op.PurchaseID  = w.PurchaseID;

推荐阅读