select * from(QQ)x不工作,其中QQ是另一个正确运行的select语句

时间:2013-08-18 08:04:19

标签: mysql join

我准备在两个选择语句上执行连接。

select x.A from (select blah - Q1 )x join (select blah - Q2 ) y on x.A = y.A

我的查询代表Q2:

select c.cust_id, c.card_id, c.name, s.name, sum(b.amt) - sum(p.amt) as DUE_AMT, DATEDIFF( now(), min(b.due_date)) AS DELAY
from cust c
inner join bill b on b.cust_id = c.cust_id 
left join payment p on p.bill_id = b.bill_id
inner join street s on s.street_id = c.street_id
where c.co_id=1
group by c.cust_id

以上语句运行正常并返回结果集。

但是当我尝试在select * from(Q2)x中包含上述查询时,mysql workbench没有执行它。我究竟做错了什么?因为select * from(Q1)x,如果我把其他查询完全正常工作。

select * from (
select c.cust_id, c.card_id, c.name, s.name, sum(b.amt) - sum(p.amt) as DUE_AMT, DATEDIFF( now(), min(b.due_date)) AS DELAY
from cust c
inner join bill b on b.cust_id = c.cust_id 
left join payment p on p.bill_id = b.bill_id
inner join street s on s.street_id = c.street_id
where c.co_id=1
group by c.cust_id
) x

1 个答案:

答案 0 :(得分:0)

自己弄清楚这个问题。我自己也在回答这个问题,所以像你这样的开发人员不会浪费时间。

它是mysql workbench http://bugs.mysql.com/bug.php?id=67766中的一个错误,它阻止向用户显示正确的错误。

因此,对于记录问题在我的查询中,select语句中有c.name, s.name,它在结果集中的相同列名下生成数据。对于正常的查询运行,可以使用重复的列名。但是,为了查询结果集,不允许使用重复的列名,实际上它很有意义。