2017-03-23 42 views
1

DB MODEL查询多对多当3个表连接到结

我这是按照上述顺序连接现在我想选择样式名称从样式表型号。案例1:我想要的风格名称都是相交的类别和性别
案例2:我想只与性别相交的样式名称不分类别。

我是SQL的新手有没有任何有效的方法来获得所需的结果使用SQL JOINS。任何在这种情况下的帮助将不胜感激,或有任何建模解决方案来处理这种类型的情况。

回答

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' 
+0

感谢的人,但有没有更好的建模方法来处理这种类型的情况呢? 以及如何实现案例#2的结果 –

+0

我认为这是好的,因为你想要很多很多..你究竟需要什么情况2? – meda

+0

我想要一个特定的性别的样式名称,它的所有类别 –