Mysql SQL案例出现问题时,查询根本不运行
我有一个零售场景的小型数据库,其中有一个名为Dispatched的字段,它是一个bool,用于指示商品是否已被配送。这当然是1和0,我尝试了一个简单的例子,将1显示为是,0显示为否 我的全部问题是:Mysql SQL案例出现问题时,查询根本不运行,mysql,sql,case,case-when,Mysql,Sql,Case,Case When,我有一个零售场景的小型数据库,其中有一个名为Dispatched的字段,它是一个bool,用于指示商品是否已被配送。这当然是1和0,我尝试了一个简单的例子,将1显示为是,0显示为否 我的全部问题是: SELECT orders.OrdersID, stock.ItemName, basket.Quantity, customer.FirstName, customer.LastName, address.AddressLine1, address.AddressLine2, ad
SELECT
orders.OrdersID,
stock.ItemName,
basket.Quantity,
customer.FirstName,
customer.LastName,
address.AddressLine1,
address.AddressLine2,
address.TownOrCity,
address.Postcode,
address.Country,
CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END AS basket.Dispatched
FROM orders
JOIN OrdersBasketJoin ON orders.OrdersID = OrdersBasketJoin.OrdersID
LEFT JOIN basket ON OrdersBasketJoin.BasketID = basket.BasketID
JOIN customer ON orders.CustomerID = customer.CustomerID
JOIN address ON orders.DeliveryAddress = address.AddressID
JOIN stock ON basket.StockID = stock.StockID
ORDER BY `customer`.`CustomerID` ASC
LIMIT 0 , 30
查询工作正常,不带大小写WHEN,并将显示正常选择分派时的1和0,以及引用分派时工作正常的位置
然而,当我尝试添加
CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END AS basket.Dispatched
我得到了错误
#1064 - 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 '.Dispatched FROM orders JOIN OrdersBasketJoin ON orders.OrdersID = Ord' at line 12
从我所研究的情况来看,这和你能做的一样简单,我相信语法是正确的
不确定这是否只是一个视觉缺陷,但案例中的END不会像已知的函数一样亮起,而JOIN、ON、LEFT等都会亮起,无论END在哪里都不会亮起
非常感谢您提供的任何帮助-Tom,地址后缺少您的姓名。因此您遇到语法错误,请尝试此项
SELECT
orders.OrdersID,
stock.ItemName,
basket.Quantity,
customer.FirstName,
customer.LastName,
address.AddressLine1,
address.AddressLine2,
address.TownOrCity,
address.Postcode,
address.Country,
(CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END) AS `basket.Dispatched`
FROM orders
JOIN OrdersBasketJoin ON orders.OrdersID = OrdersBasketJoin.OrdersID
LEFT JOIN basket ON OrdersBasketJoin.BasketID = basket.BasketID
JOIN customer ON orders.CustomerID = customer.CustomerID
JOIN address ON orders.DeliveryAddress = address.AddressID
JOIN stock ON basket.StockID = stock.StockID
ORDER BY `customer`.`CustomerID` ASC
LIMIT 0 , 30
地址后缺少,因此出现语法错误。请尝试此项
SELECT
orders.OrdersID,
stock.ItemName,
basket.Quantity,
customer.FirstName,
customer.LastName,
address.AddressLine1,
address.AddressLine2,
address.TownOrCity,
address.Postcode,
address.Country,
(CASE WHEN basket.Dispatched = 1 THEN 'Yes' ELSE 'No' END) AS `basket.Dispatched`
FROM orders
JOIN OrdersBasketJoin ON orders.OrdersID = OrdersBasketJoin.OrdersID
LEFT JOIN basket ON OrdersBasketJoin.BasketID = basket.BasketID
JOIN customer ON orders.CustomerID = customer.CustomerID
JOIN address ON orders.DeliveryAddress = address.AddressID
JOIN stock ON basket.StockID = stock.StockID
ORDER BY `customer`.`CustomerID` ASC
LIMIT 0 , 30
放回勾号:
AS `basket.Dispatched`
放回勾号:
AS `basket.Dispatched`
别名前后缺少单引号
我在我的开发机器上尝试过这个,但没有一个引用,并且出现了相同的错误
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
别名前后缺少单引号
我在我的开发机器上尝试过这个,但没有一个引用,并且出现了相同的错误
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
最初我在那里用了一个逗号,然后得到了一个错误:1064-您的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法。从orders发送加入OrdersBasketJoin ON orders.OrdersID=Ord'在第12行之前,您不需要逗号,您需要逗号来分隔选择列表中的列,以便使用basket。Dispatched是另一个新列,因此您需要在该列之前使用逗号,然后使用from@Tom再次看到我的答案,我在篮子周围也用了反勾号,我是从另一个问题开始的:它没有显示出对篮子的需要,或者“我最初在那里用了一个逗号,得到了一个错误:1064-您的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法。从orders发送加入OrdersBasketJoin ON orders.OrdersID=Ord'在第12行之前,您不需要逗号,您需要逗号来分隔选择列表中的列,以便使用basket。Dispatched是另一个新列,因此您需要在该列之前使用逗号,然后使用from@Tom再次看到我的答案,我在篮子周围也用了反勾号。DispatchedAh谢谢,我是从另一个问题开始的:在这里,它没有显示出对篮子或篮子的需要``