gpt4 book ai didi

mysql - 如何在 select 语句 if 条件中使用 select 语句

转载 作者:行者123 更新时间:2023-11-30 01:32:01 25 4
gpt4 key购买 nike

我想做的事情:

我想从订单表中获取产品的名称及其 ID,但就我而言,我已将产品存储在 3 个不同的表中。即菜肴、饮料、其他。

问题:

所以问题是在订单表中我放置了一个类型(它是什么类型的产品),例如“dirnks,dish,others”。那么当产品可以位于任何表中时,我如何获取产品的名称(菜肴、饮料、其他)

我想要什么:

我不知道这是否可能,但如果有人可以告诉下面的查询是什么,我如何在 IF 语句中使用 select 语句

    SELECT product_id,type,quantity ,
( IF(type='Drinks)
THEN
(SELECT drink_name FROM drinks WHERE drink_id=product_id)
ELSE IF (type='Dish)
THEN
(SELECT dish_name FROM dish WHERE dish_id=product_id)
)
as drink_name
FROM order_product

WHERE shop_id='JSMMSK730'

这件事可能吗?

最佳答案

使用UNION,并向子查询添加一个新列,指示行来自哪个表。然后您可以在 JOIN 条件中使用它。

SELECT product_id, o.type, quantity, name FROM 
order_product o JOIN
(
SELECT "dish" type, dish_id id, drink_name name from dish
UNION
SELECT "drinks" type, drink_id id, drink_name name from drinks
UNION
SELECT "others" type, other_id id, other_name name from others
) p
ON p.id = o.product_id and p.type = o.type
WHERE shop_id = 'JSMMSK730'

关于mysql - 如何在 select 语句 if 条件中使用 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com