gpt4 book ai didi

mysql - 排除未包含在 OR 中的行? MySQL

转载 作者:行者123 更新时间:2023-11-29 06:49:07 25 4
gpt4 key购买 nike

我收到了这个请求:

SELECT *
FROM
produits as P,
fournisseur as F,
caracteristiques as C,
liste_caracteristiques as Li
WHERE P.fournisseur = F.reffournisseur
AND C.idCarac = Li.idCarac
AND P.refproduit = Li.refproduit
AND typeProd ='1'
AND prixpublicindicatif <= 450
AND (libelleCarac = "Poids" AND valeur <= 1100
OR libelleCarac = "Taille de l'écran" AND valeur IN('15cm', '8.3cm'));

问题是:如果 poids <= 1100,我只得到 C.libelleCarac = 'Poids' 的结果,如果 valeur = 15cm 或 8.3cm,则结果为 C.libelleCarac = 'Taille de l\'écran',如果 valeur = 15cm 或 8.3cm,则结果为 C.libelleCarac = 'Taille de l\'écran' AND C.libelleCarac = 'Poids' 如果 poids <= 1100

但我只需要 C.libelleCarac = 'Taille de l\'écran' 和 C.libelleCarac = 'Poids' 的结果,并排除只有一个 C.libelleCarac 的产品

如果不清楚,请告诉我

最佳答案

nomproduit 列进行分组,并仅采用同时具有这两种条件的组

SELECT P.nomproduit
FROM produits as P
JOIN fournisseur as F ON P.fournisseur = F.reffournisseur
JOIN liste_caracteristiques as Li ON P.refproduit = Li.refproduit
JOIN caracteristiques as C ON C.idCarac = Li.idCarac
WHERE typeProd ='1'
AND prixpublicindicatif <= 450
AND
(
(C.libelleCarac = "Poids" AND C.valeur <= 1100) OR
(C.libelleCarac = "Taille de l'écran" AND C.valeur IN('15cm', '8.3cm'))
)
group by P.nomproduit
having count(distinct C.idCarac) = 2

关于mysql - 排除未包含在 OR 中的行? MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48187933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com