gpt4 book ai didi

mysql - 如果其中一个表与另一个表匹配,则选择表中的行

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

我有 3 张 table :

  • 产品
  • 运动
  • 运动产品

product 表有一个字段 group_id(是产品的组)。
movement_product 表有一个字段 movement_id(与 movement 表匹配)和 product_id(与 产品表)。

我想选择某个机芯的所有机芯产品(如果其中一个产品来自特定的产品组)。

我尝试了以下 SQL:

SELECT
mp.*
FROM
movement AS m,
movement_product AS mp
WHERE
m.id = mp.movement_id
AND EXISTS (
SELECT *
FROM product p
WHERE mp.product_id = p.id
AND p.group_id = "48"
)
GROUP BY mp.movement_id

但它返回一个列表,其中仅包含来自该特定组的产品(group_id 上的 48 只是一个示例)。

最佳答案

如果我理解正确的话,你可以遵循这个逻辑。首先,获取所有符合条件的 Action :

select distinct mp.movement_id
from movement_products mp
where exists (select 1
from products p
where p.id = mp.product_id and
p.group_id = 48
);

要获得这些运动中的产品,您可以执行以下操作:

select mp.*
from movement_products mp
where mp.movement_id in (select mp.movement_id
from movement_products mp
where exists (select 1
from products p
where p.id = mp.product_id and
p.group_id = 48
);

关于mysql - 如果其中一个表与另一个表匹配,则选择表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24408291/

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