【发布时间】:2011-03-30 12:45:58
【问题描述】:
我无法在 Mysql 中处理子查询。相当简单的也可以,而且我发现的大多数教程很少超出典型:
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
我试图从我的数据库中提取的内容如下(我会尽力解释这一点,而无需任何数据库背景):
在另一列中检索属于特定代表的客户列表和上个月花费的总金额(在一个列中)和本月迄今花费的金额。
结果大致如下:
ID | NAME | PREV MONTH | CUR MONTH
1 | foobar | £2300 | £1200
2 | barfoo | £1240 | £500
我用来获取第一部分数据的查询如下:
SELECT c.id,c.name, SUM(co.invoicetotal) as total
FROM customers as c
JOIN customerorders as co on co.customer_id = c.id
WHERE c.salesrep_id = 24
AND co.orderdate BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE()
GROUP by c.id
order by total desc
DATE_SUB 可以替换为实际日期,因为 php 变量最终会出现在这里。作为一个例子,这只是给了我有效的数据。
这给了我,例如:
ID | NAME | TOTAL
1 | foobar | £2300
2 | barfoo | £1240
因此,理想情况下,我的子查询将是完全相同的查询,但日期已更改。我不断收到#1242 - Subquery returns more than 1 row 错误。
请问有什么建议或意见吗?
提前致谢。 抢
【问题讨论】:
标签: sql mysql subquery mysql-error-1242