我真的不确定如何问这个,但让我试一试。
我有一张桌子,我们称之为小部件。在每个小部件的这个表中,我将有几个包含各种数据的记录,但是这个小部件的每个记录都有相同的小部件标识符。
如果其中一条记录包含其他特定数据,我该如何才能选择此小组件。
示例:
---------------------------------
| widgetid | status |
|--------------------------------
| 54345 | added to inventory |
|-------------------------------|
| 54345 | sold |
|-------------------------------|
| 58879 | added to inventory |
---------------------------------
因此,在上表中,我只想选择54345小部件,因为它是唯一具有匹配“已售出”状态的小部件。
这里的问题是我不会在查询时知道小部件ID,因为它是动态生成的。
我确信我错过了一些非常愚蠢的东西,但是在弄乱了一段时间并且没有找到帮助搜索之后,我认为是时候把它扔出去看看你们有多好想了。
如果重要,请使用MySQL。
答案 0 :(得分:5)
SELECT w1.*
FROM Widgets w1
JOIN Widgets w2
ON w1.widgetid = w2.widgetid
WHERE w2.status = "sold"
答案 1 :(得分:1)
SELECT widgetid FROM widgets WHERE status= 'sold'
这可以为你做到
答案 2 :(得分:0)
试试这个:
SELECT widgetid
FROM widgets
WHERE status='sold'
答案 3 :(得分:0)
DevZer0的解决方案不仅包含一个错误(表名丢失),它还只会返回“已售出”状态的记录。我假设你已经记录了所有带有“已售出”状态的小工具的记录。试试这个:
SELECT * FROM widgets WHERE widgetid IN (SELECT widgetid FROM widgets WHERE status = 'sold')