我有两个表,Order
和OrderDetail
,关系为1:N。OrderDetail
表有一个Category
列。
当我从Order
表中进行选择时,我想用CASE
语句选择一列。如果所有OrderDetail
列的类别是食品,我想选择它作为“食品”。但是如果OrderDetail
表中有许多不同的类别,我想选择它为“混合”。有很多种类的类别。
因此,如果订单只包括书籍/食品/等,我希望它选择,因为它是。否则,混合。
我只知道SQL的基础知识。所以我一直在寻找一种方法来实现这一点。我想我需要子查询,但我根本不会写查询。
2条答案
按热度按时间2w3kk1z51#
您可以使用相关子查询并计算不同类别的数量,如果只有一个类别,则显示否则显示
Mixed
(假设您在orders
表中有一个主键列,如id
,并且在order_details
表中有一个外键列,如order_id
,引用前一个主键):其中,对于样本数据:
输出:
| ID|名称|产品分类|
| --------------|--------------|--------------|
| 1|订单1|食品类|
| 二|订单2|混合|
| 三|订单3|书|
| 四个|订单4|混合|
fiddle
7rtdyuoh2#
或者,它可以是: