首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接三个MySQL表

问连接三个MySQL表
EN

Stack Overflow用户
提问于 2018-01-22 22:54:18
回答 2查看 76关注 0票数 0

我有三张桌子:

​

​

代码语言:javascript
复制
== liste_caracteristiques
|------
|------
|//**idCarac**//|int(11)|Non|
|//**refproduit**//|int(11)|Non|
|valeur|varchar(255)|Oui|NULL
|0|4942|Windows
|0|8149|Android
|1|9980|300
|1|10300|1100
|1|10316|149.5
|2|4942|7
|2|8149|12
|2|9980|15cm
|2|10300|4cm
|2|10316|8.3cm

和

代码语言:javascript
复制
== caracteristiques
|------
|------
|//**idCarac**//|int(11)|Non|
|libelleCarac|varchar(255)|Oui|NULL
|0|Système d'exploitation
|1|Poids
|2|Screen size
|3|ATEX
|4|Zone 0
|5|Zone 1
|6|Zone 2

和

代码语言:javascript
复制
== types_carac
|------
|------
|//**idTypeProd**//|int(11)|Non|
|//**idCarac**//|int(11)|Non|
|1|1
|1|2
|1|3
|2|0
|2|2
|2|3

当libelleCarac为"Screen size“且idTypeProd =2时,我需要获取"valeur”的所有值

所以我试着使用:

代码语言:javascript
复制
SELECT * 
FROM types_carac as T, caracteristiques as C, liste_caracteristiques as L 
WHERE T.idCarac = C.idCarac 
AND C.idCarac = L.idCarac 
AND idTypeProd = 2 
AND libelleCarac = "Screen size"

在我的结果中,有些值与idTypeProd =2无关

我有:

代码语言:javascript
复制
|idTypeProd|idCarac|idCarac|libelleCarac|idCarac|refproduit|valeur
|2|2|2|Screen size|2|4942|7
|2|2|2|Screen size|2|8149|12
|2|2|2|Screen size|2|9980|15cm
|2|2|2|Screen size|2|10300|4cm
|2|2|2|Screen size|2|10316|8.3cm

我需要

代码语言:javascript
复制
|idTypeProd|idCarac|idCarac|libelleCarac|idCarac|refproduit|valeur
|2|2|2|Screen size|2|4942|7
|2|2|2|Screen size|2|8149|12

实际上,我只需要idType = 2的屏幕大小值,我的查询看起来不错,但结果不好

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-22 23:00:07

如果有效,请让我知道。它使用现代的连接语法,如果有错误,更容易阅读和调试。此查询将三个表连接在一起,然后返回valeur值,其中idTypeProd为2,libelleCarac为屏幕大小。

代码语言:javascript
复制
SELECT  valeur
FROM    liste_caracteristiques lc
JOIN    caracteristiques c on c.idCarac = lc.idCarac
JOIN    types_carac tc on tc.idCarac = c.idCarac
WHERE   tc.idTypeProd = 2
AND     libelleCarac = "Screen size"
票数 1
EN

Stack Overflow用户

发布于 2018-01-22 23:00:28

您可以在注释部分使用上面解释的JOIN来尝试这个查询:

代码语言:javascript
复制
SELECT
    TC.idTypeProd
    ,LC.idCarac
    ,C.libelleCarac
    ,LC.refproduit
    ,LC.valeur
FROM liste_caracteristiques LC
INNER JOIN types_carac TC
    ON LC.idCarac = TC.idCarac
    AND idTypeProd = 2
INNER JOIN caracteristiques C
    ON TC.idCarac = C.idCarac
    AND libelleCarac = 'Screen size'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48384346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档