mysql join 缺陷,mysql多表join联查语句错误:#1241 - Operand should contain 1 column(s)

对ecshop系统做一些改造,需要一个三表join的查询,但写出语句却报错了

#1241 - Operand should contain 1 column(s)

语句如下:

SELECT a . * , IFNULL( g.goods_thumb, '' ) AS goods_thumb, g.goods_name AS goods_name_from_goods, g.brand_id, b.brand_name

FROM `eb`.`ec_goods_activity` AS a

LEFT JOIN (`eb`.`ec_goods` AS g , `eb`.`ec_brand` AS b )

ON (a.goods_id = g.goods_id , b.brand_id = g.brand_id)

WHERE a.act_type = '5'

AND a.start_time <= '1333010119'

AND a.end_time >= '1333010119'

AND a.is_finished <2

ORDER BY a.act_id DESC

LIMIT 20

起初死活找不到错误,突然发现ON子句里把条件and错写成逗号了,改正后执行正确,问题解决。

SELECT a. * , IFNULL( g.goods_thumb, '' ) AS goods_thumb, g.goods_name AS goods_name_from_goods, g.brand_id, b.brand_name

FROM `eb`.`ec_goods_activity` AS a

LEFT JOIN (

`eb`.`ec_goods` AS g, `eb`.`ec_brand` AS b

) ON ( a.goods_id = g.goods_id AND b.brand_id = g.brand_id )

WHERE a.act_type = '5'

AND a.start_time = '1333010119'

AND a.is_finished ORDER BY a.act_id DESC

LIMIT 20

延伸阅读coded by nessus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值