我有一张table:attb
------------------------------------------------
Id | Name | Code | Attribute | Amount
------------------------------------------------
1 | AV | 123 | Alpha | 233
------------------------------------------------
2 | TV | 122 | Beta | 235
------------------------------------------------
3 | TV | 123 | Gama | 238
------------------------------------------------
4 | CD | 122 | Beta | 239
------------------------------------------------
5 | TP | 122 | Beta | 240
------------------------------------------------
6 | RX | 123 | Alpha | 241
------------------------------------------------
我将其查询为:
select id,name, code, attribute, amount
from attb
where code = 123 and attribute='Alpha'
UNION
select id,name, code, attribute, amount
from attb
where code = 122;
它返回以下内容
Id | Name | Code | Attribute | Amount
------------------------------------------------
1 | AV | 123 | Alpha | 233
------------------------------------------------
2 | TV | 122 | Beta | 235
------------------------------------------------
4 | CD | 122 | Beta | 239
------------------------------------------------
5 | TP | 122 | Beta | 240
------------------------------------------------
6 | RX | 123 | Alpha | 241
------------------------------------------------
有没有一种方法可以组合两个查询而不是使用联合运算符?或者更好的执行?
4条答案
按热度按时间6mw9ycah1#
nnt7mjpx2#
很容易。只是使用
or
.jucafojl3#
两个都放好
where
将子句合并到一个查询中:输出:
sqlfiddle演示
a9wyjsp74#
试试这个。