如何在表格中获得所需的记录?

时间:2012-05-11 18:03:15

标签: mysql sql

我试图在基于使用mysql的条件的表之间获取记录。这是我的桌子。 表名:trans_table,它有两个字段。

item    transaction
-----   -----------
item1   b
item2   b
item3   b
item3   c
item4   d
item5   b

我正在尝试仅获得事务b的项目。因此,结果不包含任何其他事务。所需的输出将是这样的

item   transaction
-----  -----------
item1   b
item2   b
item5   b

(becoz item3有交易c和b以及第4项和第4项不包含交易b)

我尝试了以下查询

1.`select * from trans_tbl where transaction = 'b'`

2.`select item,qty from trans_tbl where item in(select item from trans_table group by    item having count(item)=1);`

通过上述两个查询,我无法获得所需的输出。那么还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情。它会将所有项目组合在一起,只返回1.具有单个交易和2.该交易为'b'

的项目
select item, transaction
from trans_tbl
where transaction = 'b'
group by item, transaction
having count(item) = 1

答案 1 :(得分:0)

另一种解决方案:

select distinct t1.item, t1.transaction
from trans_tbl t1
left join trans_tbl t2 on t1.name=t2.name and t1.transaction<>t2.transaction
where t2.name is null

左连接和检查右边的部分是否可以解决问题。