我头晕目眩,试图找出我需要使用的 SQL 查询。我尝试了各种嵌套查询和自连接,但一切都让我失望了。我想我想得太多了。
基本思想:我有一个表,我们称之为,表中OrderTable
有四个(相关)字段:OrderId
, CustomerId
, RestaurantId
,OrderTime
当客户下订单时,日期/时间戳会添加到该OrderTime
字段。其他三个字段只是整数,OrderId
字段作为主键(并且自动递增)。
我正在尝试编写一个查询,该查询将返回一个CustomerId
记录列表,其中该客户的第一条记录(最早日期)是特定日期(比如“2012-03-14”),RestaurantId 是特定数字(比如29)。
目前,我只能假设这是一种过于复杂的方法。此外,当有多个记录与我的子查询匹配时,我目前收到错误“#1242 - 子查询返回超过 1 行”。
谁能帮我一个更优雅的解决方案?谢谢!
当前查询:
SELECT `CustomerId`
FROM `OrderTable`
WHERE `OrderTime` LIKE '%2012-03-14%'
AND `RestaurantId`='29'
AND `OrderId`=(SELECT `OrderId`
FROM `OrderTable`
WHERE `RestaurantId`='29'
GROUP BY `CustomerId`
ORDER BY `OrderTime` ASC
)