1

我正在尝试根据使用 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

(因为 item3 具有交易 c 以及 b 和 item 4 和 item4 不包含交易 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);`

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

4

2 回答 2

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

左连接和检查右部分是否为空就可以了。

于 2012-05-11T19:52:21.140 回答
0

尝试这样的事情。它将所有项目组合在一起,并且只返回 1. 有一个事务和 2. 该事务是“b”的项目

select item, transaction
from trans_tbl
where transaction = 'b'
group by item, transaction
having count(item) = 1
于 2012-05-11T18:12:27.010 回答