是否可以,如何在列abc中只保留唯一值,是否可以不显示列id1? 我的问题是
3
结果如下:
SELECT
br.id,LEFT( br.abc,3),
d.id
FROM
test br
LEFT JOIN i_test2 d ON d.id LIKE concat(br.abc, '%')
WHERE
d.id NOT LIKE '%0' AND d.id NOT LIKE '%9'
我试图通过添加
来解决id abc id1
1 C18 C181
2 C18 C182
3 D50 D504
4 D50 D506
5 D10 D106
6 D10 D107
最后,结果应如下所示:
GROUP BY br.abc
HAVING COUNT(*) > 1 (also i tried with HAVING COUNT(br.abc) but id didn't work)
目的是,我希望显示表 test 中的值,这些值不能引用表test2中以0或9结尾的值,因为它不存在。结果我想看到唯一的价值。
答案 0 :(得分:3)
你可以做这样的事情;
SELECT
MIN(br.id) id,
LEFT(br.abc,3) abc
FROM
test br
LEFT JOIN i_test2 d ON d.id LIKE concat(br.abc, '%')
WHERE
d.id NOT LIKE '%0'
AND d.id NOT LIKE '%9'
GROUP BY LEFT(br.abc,3)
它会根据该行的ID为您提供第一次出现“abc”列。
答案 1 :(得分:1)
如果您只想要唯一的abc
值,请尝试使用DISTINCT
,如果您不想要第三列,则不要选择它。下面的答案没有显示任何ID值,但是再次选择显示哪一个的逻辑不清楚。
SELECT DISTINCT LEFT(br.abc,3) AS abc
FROM test br
LEFT JOIN i_test2 d
ON d.id LIKE CONCAT(br.abc, '%')
WHERE d.id NOT LIKE '%0' AND
d.id NOT LIKE '%9'