我想知道什么VFP9相当于mySQL'NOT IN'。
为了给你准确的目的。我有两个表,我想显示table1中的所有数字,这些数字在table2中没有任何出现。
TABLE1
1
2
3
4
5
6
7
8
9
10
TABLE 2
2
3
4
8
9
RESULT:
1
5
6
7
10
我写了mySQL代码:
SELECT * FROM table1 WHERE table1.row1 NOT IN (SELECT row2 FROM table2)
现在这段代码不会在vfp9中运行,似乎它无法识别NOT
或者我的代码存在缺陷。任何的想法。
答案 0 :(得分:3)
请尝试LEFT JOIN
:
SELECT t1.*
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.row1 = t2.row2
WHERE t1.row1 IS NULL;
答案 1 :(得分:1)
试试这个:
SELECT * FROM Table1 Right JOIN table2 on Table1.row1 = Table2.row2 WHERE Table1.row1 is not null
我相信你的Table1和Table2是一个游标,
答案 2 :(得分:0)
添马舰的评论是正确的。尝试运行以下代码:
CREATE CURSOR table1 (row1 i)
CREATE CURSOR table2 (row2 i)
SELECT table1
FOR x=1 TO 10
APPEND BLANK
replace row1 WITH x
ENDFOR
SELECT table2
APPEND BLANK
replace row2 WITH 2
APPEND BLANK
replace row2 WITH 3
APPEND BLANK
replace row2 WITH 4
APPEND BLANK
replace row2 WITH 8
APPEND BLANK
replace row2 WITH 9
SELECT * FROM table1 WHERE table1.row1 NOT IN (SELECT row2 FROM table2)
工作正常。
答案 3 :(得分:-1)
我创建了Table1和Table2,其值与您完全相同
我执行了SELECT * FROM table1 WHERE table1.row1 NOT IN (SELECT row2 FROM table2)
结果是1 5 6 7 10.
代码是对的,结果也是。