gpt4 book ai didi

Java 数据库 |从多对多分组中检索匹配项

转载 作者:行者123 更新时间:2023-11-30 23:45:11 26 4
gpt4 key购买 nike

考虑 MySQL 中的三个表:

product  
id - name - (more columns, irrelevant) ...
13 - chair
64 - table

method
id - name
1 - welding
2 - stamping
10 - forging

product-method (many-to-many)
product_id - method_id
13 - 1
13 - 2
13 - 10
64 - 1

基本上,我需要的是链接到特定产品的方法列表。
在此示例中,我想获取用于制作椅子的所有方法(product-method 中的 product_id 13)。返回的列表应该是:

welding  
stamping
forging

我从这个查询开始:

SELECT method_id  
FROM `product-method`
WHERE `product_id` = 13

返回 1、2 和 10

我尝试通过此查询从返回的method_id 中提取method名称:

SELECT name  
FROM `product-method`
WHERE id = (SELECT method_id FROM `product-method` WHERE product_id = 13)

什么都不返回。

我应该使用什么查询?

最佳答案

试试这个:

SELECT name
FROM method
WHERE id IN
(SELECT method_id FROM product_method WHERE product_id = 13
)

它从 product_method 表中获取给定 product_id 的适用 method_id,然后使用 WHERE 子句中的 IN 从方法表中查找方法的名称。

或者,您可以像这样使用 JOIN:

Select m.*
From method m join product_method pm
On m.id = pm.method_id
Where pm.product_id = 13;

关于Java 数据库 |从多对多分组中检索匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41787494/

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