好吧,我有一个表,该表中有两列,其中包含 ID。我想让其中一列不同,一旦它不同,就可以从某个 ID 的第二列中选择所有这些列。
最初我尝试过:
select distinct inp_kll_id from kb3_inv_plt where inp_plt_id = 581;
但是,这首先执行 where 子句,然后返回不同的值。
或者:
select * from (select distinct(inp_kll_id) from kb3_inv_plt) as inp_kll_id where inp_plt_id = 581;
但是,这无法找到列inp_plt_id
,因为distinct仅返回该列,而不是整个表。
有什么建议吗?
编辑:
每个kll_id可以有一个或多个plt_id。我想要某个 kb3_inv_plt id 具有唯一的 kll_id。
| inp_kll_id | inp_plt_id |
| 1941 | 41383 |
| 1942 | 41276 |
| 1942 | 38005 |
| 1942 | 39052 |
| 1942 | 40611 |
| 1943 | 5868 |
| 1943 | 4914 |
| 1943 | 39511 |
| 1944 | 39511 |
| 1944 | 41276 |
| 1944 | 40593 |
| 1944 | 26555 |
最佳答案
如果您的意思是,“使不同”,“仅选择仅发生一次的 inp_kll_id
”(不是 Distinct
的 SQL 语义),那么这应该有效:
select inp_kll_id
from kb3_inv_plt
group by inp_kll_id
having count(*)=1 and inp_plt_id = 581;
关于mysql - 独特的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981962/