【发布时间】:2021-07-28 13:20:54
【问题描述】:
我有一个包含以下信息的食谱表(早餐、午餐和主菜有 3 种不同的菜式类型,但放不下,每个都有 100 行:
我正在制作一个食谱网络应用程序,用户可以在其中输入他们一天需要多少卡路里,分为三餐。
我正在尝试在 sql 中查询以检索 3 行,其中每行具有每种菜肴类型,并且每个卡路里列的总和小于或等于某个值,并且每行彼此不同,因此没有行同名
到目前为止,我有一个查询返回 3 行,每道菜一个,但每道菜的最大卡路里而不是所有 3 行的总和(这里我将其设置为 >= 500)。
SELECT title, id, calories, dishType
FROM livewell.recipes
where calories >=500
group by dishType
LIMIT 3
您还可以看到午餐和主菜具有相同的标题但 ID 不同,因此它们都属于午餐和晚餐类别,但如上所述,我希望没有具有相同标题的行
我绝对不是 SQL 方面的专家,但我一直在尝试找出执行此操作的最佳方法,因此我尝试寻找在一个查询中进行多个选择查询的方法(这样每个查询都会为每个dishType,然后在一个选择查询中将它们全部连接在一起):
SELECT (
SELECT *
FROM livewell.recipes
where dishType = 'breakfast'
order by rand()
limit 1
), (
SELECT *
FROM livewell.recipes
where dishType = 'lunch'
order by rand()
limit 1
), (
SELECT *
FROM livewell.recipes
where dishType = 'main course'
order by rand()
limit 1
)
这给了我这个错误:
Error Code: 1241. Operand should contain 1 column(s)
非常感谢任何帮助
【问题讨论】:
标签: javascript mysql sql