MYSQL:
SELECT `item`.*,
IFNULL(cart.Item, Item.ID) AS Button
FROM `item`
LEFT JOIN `cart` ON `cart`.`Item` = `item`.`ID`
AND `cart`.`User` = 3
GROUP BY `item`.`ID`
ORDER BY `item`.`ID`;
任何人都可以告诉我为什么IFNULL函数在这个SQL中不起作用;声明我该如何解决这个问题?
答案 0 :(得分:1)
尝试使用此代替IFNULL
功能
因为如果IFNULL()
和cart.item
都为空,item.id
可能会产生错误。
SELECT `item`.*,
IF(cart.Item is null, Item.ID, cart.Item) AS Button
FROM `item`
LEFT JOIN `cart` ON `cart`.`Item` = `item`.`ID`
AND `cart`.`User` = 3
GROUP BY `item`.`ID`
ORDER BY `item`.`ID`;
答案 1 :(得分:0)
您可以使用COALESCE()函数,如下所示:
SELECT `item`.*, COALESCE(cart.Item, Item.ID) AS Button
当cart.item为NULL时,这将返回第二个参数Item.ID