【发布时间】:2010-05-12 08:08:58
【问题描述】:
我目前有一个包含两个重要表的数据库结构。
1) 食物类型(水果、蔬菜、肉类)
2) 特定食物(苹果、橙子、胡萝卜、生菜、牛排、猪肉)
我目前正在尝试构建一个 SQL 语句,以便我可以拥有以下内容。
水果
蔬菜
肉类
我尝试过使用如下语句
Select * From Food_Type join (Select * From Foods) as Foods on Food_Type.Type_ID = Foods.Type_ID
但这会返回每个特定食物,而我只想要每个类别的前 2 个。所以我基本上需要我的子查询在其中包含一个限制语句,以便它只找到每个类别的前 2 个。
但是,如果我只是执行以下操作
Select * From Food_Type join (Select * From Foods LIMIT 2) as Foods on Food_Type.Type_ID = Foods.Type_ID
我的语句总共只返回 2 个结果。
【问题讨论】:
-
你使用的是什么数据库系统?
-
解决此问题的查询可能依赖于特定于数据库的语法或取决于您的数据库版本支持的语法。没有多少人会想在 SQL Server 中编写查询以发现您正在使用 MySql,这就是为什么列出您正在使用的数据库很重要的原因。