您好,感谢您花时间阅读本文。
我有一个包含TXT_INC_ID和TXT_SERVICE列的表TBL_INCIDENT,我使用LEFT JOIN将其连接到包含TXT_APPLICATION_ID的表TBL_ASMS。我遇到的问题是连接将有多个匹配,我只想要第一个。我看到了一个使用LIMIT 1的代码示例,但我不确定语法是如何使用的。我也看到了一些使用row_number()在分区上进行复制的解决方案,但我找不到一个是select语句,只删除了。
这是我目前的状态:
SELECT COUNT(A.TXT_INC_ID)
FROM(
SELECT A.TXT_INC_ID, B.APPLICATION_ID
FROM TBL_INCIDENT A
LEFT JOIN TBL_ASMS B ON A.TXT_SERVICE LIKE ('%' || B.APPLICATION_ID || '%') LIMIT 1
)
TXT_INC_ID是它来自的表中的主键,我只希望左连接返回每个记录一个匹配。我正在使用左,因为我需要返回表A中的每个记录,但只返回一次。
由于
答案 0 :(得分:2)
也许使用Max?
SELECT COUNT(A.TXT_INC_ID)
FROM(
SELECT A.TXT_INC_ID, Max(B.APPLICATION_ID)
FROM TBL_INCIDENT A
LEFT JOIN TBL_ASMS B ON A.TXT_SERVICE LIKE ('%' || B.APPLICATION_ID || '%')
group by A.txt_inc_id
)
答案 1 :(得分:0)
您的结果在逻辑上与:
相同SELECT COUNT(A.TXT_INC_ID)
FROM TBL_INCIDENT A