我试图在基于使用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);`
通过上述两个查询,我无法获得所需的输出。那么还有其他方法吗?
答案 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
左连接和检查右边的部分是否可以解决问题。