我一直收到错误码1241。我一直在寻找答案,但找不到对我有帮助的答案。
这是我的密码:
SELECT name, address, city, phone
FROM customer
WHERE customer.ID IN (
SELECT customer.ID, COUNT(*) AS amount_reservations
FROM customer, (
SELECT ID
FROM customer, reservations
WHERE rent_time = 'weekend' AND
ID = customer_ID
) AS foo
WHERE customer.ID = foo.ID
GROUP BY customer.ID
HAVING amount_reservations > 1
)
3条答案
按热度按时间oknrviil1#
我强烈建议重写你的查询。删除子查询——它们不是必需的。然后使用
explicit joins
而不是逗号。d4so4syb2#
子查询
SELECT customer.ID, COUNT(*) AS amount_reservations
应该只有一列,而不是两列。更改为:
9njqaruj3#
如果你想用
in
,您可以从根本上简化查询:笔记:
不要在句子中使用逗号
FROM
条款。始终使用适当的、明确的、标准的JOIN
语法。对所有列引用使用表别名和限定列名。
你不需要一个
JOIN
在子查询中,因为您在reservations表中有customer id。