日期:2014-05-18 浏览次数:20375 次
--try SELECT * FROM 客户表 A LEFT JOIN 订单主表 B ON B.客户编号=A.客户编号 LEFT JOIN 订单明细表 C ON B.订单编号=C.订单编号 WHERE C.商品名称='旺旺雪饼' GROUP BY A.客户编号
------解决方案--------------------
SELECT * FROM 客户表 WHERE --此处要指定 '客户编号 in' (SELECT 客户编号 FROM 订单主表 WHERE --此处要指定'订单编号 IN' ( SELECT 订单编号 FROM 订单明细表 WHERE 商品名称='旺旺雪饼')) GROUP BY 客户编号 --你缺少了指定,默认指定了非布尔类型的表达式,导致查询报错
------解决方案--------------------
万恶的404
------解决方案--------------------
SELECT * FROM 客户表 WHERE 客户编号 IN --此处要指定 '客户编号 IN' (SELECT 客户编号 FROM 订单主表 WHERE 订单编号 IN --此处要指定'订单编号 IN' ( SELECT 订单编号 FROM 订单明细表 WHERE 商品名称='旺旺雪饼')) GROUP BY 客户编号
------解决方案--------------------
嵌套时候需要加别名,建议使用inner join。
SELECT * FROM 客户表 WHERE
(SELECT 客户编号 FROM 订单主表 WHERE
(
SELECT 订单编号
FROM 订单明细表 WHERE
商品名称='旺旺雪饼')a )b GROUP BY 客户编号
------解决方案--------------------
SELECT * FROM 客户表 WHERE ( SELECT 客户编号 FROM 订单主表 WHERE ( SELECT 订单编号 FROM 订单明细表 WHERE 商品名称='旺旺雪饼') AS a ) AS b GROUP BY 客户编号 这种嵌套查询需要使用别名,as可以省略哈
------解决方案--------------------
where后面直接是括号(子查询)了。。。。 SELECT * FROM 客户表 WHERE 客户编号 in (SELECT 客户编号 FROM 订单主表 WHERE 订单编号 in ( SELECT 订单编号 FROM 订单明细表 WHERE 商品名称='旺旺雪饼') ) GROUP BY 客户编号 in后面的子查询,是不能带别名的
------解决方案--------------------
SELECT * FROM 客户表 WHERE 客户编号 in (SELECT 客户编号 FROM 订单主表 WHERE 订单编号 in ( SELECT 订单编号 FROM 订单明细表 WHERE 商品名称='旺旺雪饼' ) ) GROUP BY 客户编号