问题可能不是新的,但我需要你的帮助。我有sql db表,我想为具有两列不同值的行选择所有列 例如,我有一个名为'information'的表格,如下所示。 我想要的是选择具有不同值'ctc_card_no'和'tarehe'的所有行。任何人都可以帮助我,因为我努力获得结果
我需要结果
答案 0 :(得分:0)
我认为你想使用not exists
:
select t.*
from t
where not exists (select 1
from t t2
where t2.ctc_card_no = t.ctc_card_no and t2.tarehe = t.tarehe and
t2.id <> t.id
);
这将返回在表格中只出现一次的所有行,这就是我解释您的问题的方式。
编辑:
如果您只想要不同的对,可以使用group by
:
select min(id), ctc_card_no, tarehe
from t
group by ctc_card_no, tarehe;
答案 1 :(得分:0)
也许是这样的?
select *
from information
where (ctc_card_no, tarehe) in
(select ctc_card_no, tarehe
from information
group by ctc_card_no, tarehe
having count(*) = 1
);