当3个表连接到交叉点时查询多对多

时间:2017-03-23 22:50:51

标签: many-to-many

DB MODEL

我有以上订单连接的型号现在我想从样式表中选择样式名称 案例1:我希望样式名称与类别和性别相交 案例2:我想要的是与性别相交的样式名称,不论其类别如何。

我是SQL的新手是否有任何有效的方法来使用SQL JOINS获得所需的结果。在这种情况下,任何帮助都将受到赞赏,或者是否有任何建模解决方案来处理此类情况。

1 个答案:

答案 0 :(得分:0)

以下是您加入表格的方式:

SELECT *
FROM `style`
  INNER JOIN `StyleCategoryGender` ON `StyleCategoryGender`.`SID` = `style`.`Code`
  INNER JOIN `StyleCategoryGender` ON `Category`.`Code` = `StyleCategoryGender`.`GID`
  INNER JOIN `StyleCategoryGender` ON `Gender`.`Code` = `StyleCategoryGender`.`CID`

然后您可以根据需要添加WHERE条款

SELECT *
FROM `style`
  INNER JOIN `StyleCategoryGender` ON `StyleCategoryGender`.`SID` = `style`.`CODE`
  INNER JOIN `StyleCategoryGender` ON `Category`.`Code` = `StyleCategoryGender`.`GID`
  INNER JOIN `StyleCategoryGender` ON `Gender`.`Code` = `StyleCategoryGender`.`CID`
WHERE `Gender`.`Name` = 'Female'