查询3表上的多对多关系

时间:2018-03-14 06:27:14

标签: mysql sql database

我有3张桌子

  1. Partcar
  2. BarbellWheels
  3. Assembly
  4. 现在,我很困惑如何管理此表以获得连接,因为PartcarAssembly是多对多的关系。但是,BarbellWheels将与Partcar中的Assembly合并。如何使这个3表具有多对多关系,PartcarBarbellWheelsAssembly。 如果可以,3表中的1,加入它们的查询是什么?

    到目前为止,我的想法是,BarbellWheels加入Partcar第一,然后加入Assembly

    任何建议?

    编辑:

    Partcar上有5个数据,必须在Assembly中合并为1,BarbellWheels将在Assembly中合并最多2个数据。

    编辑编辑: 我只是放松,我没有提到这种关系。这是代码。

    CREATE TABLE `Partcar` (
         `partcarID` Char(7) NOT NULL,
         `partcar_price` decimal(19,4) DEFAULT NULL,
         `partcar_name` varchar(100) DEFAULT NULL,
          PRIMARY KEY (`PartcarID`)
          );
    
    
    ALTER TABLE `assembly` (
          `assemblyID` char(8) NOT NULL,
          `assembly_price` decimal(19,4) DEFAULT NULL,
          `partcarIDFK` int(10) NOT NULL,
          `barbellIDFK` int(10) NOT NULL,
          PRIMARY KEY (`assemblyID`),
          UNIQUE KEY `partcar` (`partcarIDFK`),
          UNIQUE KEY `barbell` (`barbellIDFK`),
          CONSTRAINT `partcarIDFK` FOREIGN KEY (`partcarIDFK`) REFERENCES partcar(`partcarID`),
          CONSTRAINT barbellIDFK FOREIGN KEY (`barbellIDFK`) REFERENCES barbell(`barbellID`)
          );
    
    ALTER TABLE `barbell` (
          `barbellID` char(10) NOT NULL,
          `name_barbell` varchar(100) DEFAULT NULL,
          `carIDFK` int(10) NOT NULL,
          PRIMARY KEY (`barbellID`),
          UNIQUE KEY `car` (`carID`),
    

2 个答案:

答案 0 :(得分:0)

请考虑以下事项:

食谱

recipe_id recipe 
        1 cheese on toast
        2 macaroni and cheese

成分

ingredient_id ingredient
          101 cheese
          102 toast
          103 macaroni 

Recipe_Ingredient

recipe_id ingredient_id
        1 101
        1 102
        2 103
        2 104

答案 1 :(得分:-2)

以下网址中的相同情况,也请找到解决方案。

  

https://www.codeproject.com/Questions/383844/Sql-Queries-to-show-contents-of-the-table-many-to