这是我的桌子.
id customer product
1 Tizag Pen
4 Gerald Garner 19" LCD Screen
5 Tizag 19" LCD Screen
Run Code Online (Sandbox Code Playgroud)
我想选择同时拥有"Pen"和"19"LCD Screen的客户.因此,结果是客户'Tizag'.
我怎样才能做到这一点.
谢谢和问候,Rupak Banerjee.
试试这个:
SELECT customer FROM table t1
JOIN table t2 USING( customer )
WHERE t1.product = 'Pen'
AND t2.product = '19" LCD Screen'
Run Code Online (Sandbox Code Playgroud)
但是,如果更改产品数,则需要更改查询.可能有更好的方法来做到这一点,但我认为这将有效.
天真:
SELECT DISTINCT customer FROM tblname t1
WHERE EXISTS (SELECT * FROM tblname WHERE product = 'Pen' AND customer = t1.customer)
AND EXISTS (SELECT * FROM tblname WHERE product = '19" LCD Screen' AND customer = t1.customer)
Run Code Online (Sandbox Code Playgroud)
但我认为总的来说,这类问题还有更多,您需要提供有关环境和参数范围的更多详细信息。
请注意,我不一定提倡这种方法,但我给出了它(并将其表示为幼稚,这意味着它非常简单并且很少考虑表索引),因为:
缺点是:
| 归档时间: |
|
| 查看次数: |
26741 次 |
| 最近记录: |