2 han3ying1jun8 han3ying1jun8 于 2014.09.23 11:06 提问

not exists 里面用and 查询不到数据

SELECT t1.TBB,t2.ID FROM (SELECT DISTINCT tb.ID tbb FROM TESTB tb) t1,TESTA t2
WHERE NOT EXISTS(SELECT 1 FROM TESTB tb2 WHERE tb2.ID||tb2.ID1=t1.TBB||t2.ID )
ORDER BY t1.TBB,t2.ID

这样是可以的

SELECT t1.TBB,t2.ID FROM (SELECT DISTINCT tb.ID tbb FROM TESTB tb) t1,TESTA t2
WHERE NOT EXISTS(SELECT 1 FROM TESTB tb2 WHERE tb2.ID=t1.TBB AND tb2.ID1=t2.ID )
ORDER BY t1.TBB,t2.ID

这样就不行
问了很多人一直在说||的事情。。。。

1个回答

fanxue820
fanxue820   2014.09.23 13:16

||是字符串连接,tb2.ID||tb2.ID1=t1.TBB||t2.ID意思是:tb2.ID和tb2.ID1连接后的字符串和t1.TBB和t2.ID连接后的字符串相等。并不意味着tb2.ID=t1.TBB和tb2.ID1=t2.ID
比如tb2.ID=字符123; tb2.ID1=串456 ;tb2.ID||tb2.ID1就是:字符123串456
如果t1.TBB||t2.ID连接后为:字符123串456 就可以
比如t1.TBB=字符;t2.ID=123串456 t1.TBB||t2.ID就是:字符123串456
不知道你明白吗?

han3ying1jun8
han3ying1jun8 TESTB中数据写 a,1 a,2 b,2 b,3 b,4
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 TESTA中数据就写1,2,3,4
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 create table TESTB ( ID VARCHAR2(30), ID1 VARCHAR2(30) )
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 create table TESTA ( ID VARCHAR2(30) )
大约 3 年之前 回复
fanxue820
fanxue820 你能不能把建表的语句发给我,我试一试。
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 这样是可以的 所以非常奇怪 问了很多大神了。。
大约 3 年之前 回复
fanxue820
fanxue820 我也不知道到了,你把where后面你的东西去掉,能不能查出数据呢?
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 无论是exists和not exists都是查不到的
大约 3 年之前 回复
han3ying1jun8
han3ying1jun8 这2个都是我写的 其实我就是想问 你不要看||那种 我现在想知道另外一种and那个为什么查不到数据,
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!