我有一个SELECT语句:
SELECT *
FROM TABLE1 t1,TABLE2 t2
WHERE t1.tid=t2.tid
AND t1.Col21 IN ('103271','103280','107114','108083','116762','118462','119233','120562','125833','129706')
这不会返回任何数据,但我知道Col21中有上述所有值的记录。
我尝试过修剪(Col21),但仍然没有数据。
任何帮助表示感谢。
答案 0 :(得分:1)
首先,为了安心起见,请验证Col21
中是否存在与此查询匹配的行。
SELECT *
FROM TABLE1 t1
WHERE t1.Col21 IN ('103271','103280','107114','108083','116762','118462',
'119233','120562','125833','129706')
如果返回行,那么您呈现的查询未返回任何内容的原因是由于针对TABLE2
的连接。也许你打算做一个外连接?如果是这样,尝试这样的事情:
SELECT *
FROM TABLE1 t1,TABLE2 t2
WHERE t1.tid=t2.tid(+)
AND t1.Col21 IN ('103271','103280','107114','108083','116762','118462',
'119233','120562','125833','129706')
这将允许t2.tid
中的空值,其中TABLE2
中没有与TABLE1
中的行对应的行,从而保证始终返回TABLE1
中的所有匹配行。< / p>