jos*_*ppa 3 php mysql select product where
嗨,我有一点问题,我找不到解决方案.我在MySql中很新.
假设我有这张表:
_______________
|prodID| |propID|
|________|______|
| 1 | 2 |
| 1 | 5 |
| 2 | 6 |
| 2 | 7 |
| 3 | 5 |
| 3 | 2 |
| 3 | 9 |
| 4 | 5 |
| 4 | 3 |
| 5 | 2 |
| 5 | 5 |
|________|______|
Run Code Online (Sandbox Code Playgroud)
prodID是Product-ID,propID是Property-ID.
现在我想得到的产品例如具有propID = 2的属性和propID = 5的属性.如果propID = 2中的属性是"由玻璃制成"而propID = 5则是"对儿童安全".我希望我得到的产品(prodID)都是."由玻璃制成,对儿童安全".所以我得到的propID是1,3和5.
这对我没有用:
SELECT prodID FROM table WHERE propID=2 AND propID=5
Run Code Online (Sandbox Code Playgroud)
我希望我的意思很明确,希望有人能帮助我.
谢谢
编辑:
表现在在prodID = 4时更改.如果我愿意的话
SELECT prodID FROM table WHERE propID=2 OR propID=5
Run Code Online (Sandbox Code Playgroud)
我会得到1,3,4和5.但这不是我想要的.
您需要的查询是:
SELECT
prodID
FROM
t
WHERE
propID IN (2,5)
GROUP BY
prodID
HAVING
COUNT(DISTINCT propID)=2
Run Code Online (Sandbox Code Playgroud)
另外,请注意,它是"正好2个属性".如果结果中需要"属性中至少'2'和'5',则更COUNT(DISTINCT propID)=2
改为COUNT(DISTINCT propID)>=2
.检查这个小提琴.
归档时间: |
|
查看次数: |
625 次 |
最近记录: |