我甚至不知道该怎么问,但让我试一试。
我有一张桌子,我们称之为小部件。在每个小部件的这个表中,我将有几个记录,其中包括各种数据,但这个小部件的每个记录都有相同的小部件标识符。
如果其中一条记录包含其他特定数据,我如何才能选择此小部件。
示例:
---------------------------------
| widgetid | status |
|--------------------------------
| 54345 | added to inventory |
|-------------------------------|
| 54345 | sold |
|-------------------------------|
| 58879 | added to inventory |
---------------------------------
因此,在上表中,我只想选择54345小部件,因为它是唯一一个具有匹配"已售出"状态的小部件。
这里的问题是,我在查询时不会知道小部件id,因为它是动态生成的。
我确信我错过了一些非常愚蠢的东西,但在处理了一段时间,没有找到帮助搜索后,我想是时候把它扔出去,看看你们这些好人怎么想了。
如果重要的话,使用MySQL。
SELECT w1.*
FROM Widgets w1
JOIN Widgets w2
ON w1.widgetid = w2.widgetid
WHERE w2.status = "sold"
SELECT widgetid FROM widgets WHERE status= 'sold'
这可以为您完成
试试这个:
SELECT widgetid
FROM widgets
WHERE status='sold'
DevZer0的解决方案不仅包含一个错误(缺少表名),而且只返回"已售出"状态的记录。我想你是在寻找所有带有"已售出"状态的widgetid的唱片。试试这个:
SELECT * FROM widgets WHERE widgetid IN (SELECT widgetid FROM widgets WHERE status = 'sold')