java - Sql多对多查询问

标签 java mysql sql many-to-many

产品

id_产品 产品名称 组件ID

组件

组件 ID 组件名称

我这里有一个将在 Combobox 中的产品列表,右侧它将是 jtable,当我选择一个产品时,它会列出我需要的所有组件。如何在 selectProduct 中进行 sql 查询? 另请注意,1 个产品最多可以有 100 个组件。并且至少有 50 个产品

谢谢

最佳答案

并且您应该避免直接使用产品表中的 componetId 避免无用的产品复制以维护与组件的关系

为此 您可以创建一个特定的表来维护产品和组件之间的关系,例如:

 table product_component ( id, product_id, componentdID  ) 

然后您可以选择产品的组件为

 select a.productName, b.nameofComponent 
 from product_component  c 
 inner join product a on a.product_id = c.product_id
 inner join  component b on b.componentdID   = c.componentdID   

对于特定产品

 select a.productName, b.nameofComponent 
 from product_component  c 
 inner join product a on a.product_id = c.product_id
 inner join  component b on b.componentdID   = c.componentdID 
 where a.product_id = your_product_id_value

关于java - Sql多对多查询问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51740135/

相关文章:

java - 我无法使用java导出数据库。谁能帮我?

java - 特别是Http outbound-gateway : is there a way to handle not HTTP errors and,、 "no connection"错误?

java - Maven - 如何仅在 Java EE 项目上重建 .xml 文件

mysql - 安全写入部分文件算法(原子部分写入)

sql - 根据一组排序的主键检索数据

sql - NVARCHAR(?) 用于 SQL Server 中的电子邮件地址

java - 如何定义自定义组合谓词?

phpexplode() 来自 MySQL 数据库的变量 - 正确的语法?

javascript - 过滤 JSON 对象比通过 ajax 查询数据库更快吗?

sql - 从一张表中获取交叉数据的最佳方法是什么?