【问题标题】:mySQL 'NOT IN' to vfp equivalent valuemySQL 'NOT IN' 到 vfp 等效值
【发布时间】:2013-01-23 07:39:01
【问题描述】:

我想知道与 mySQL 'NOT IN' 等效的 VFP9 是什么。

给你确切的目的。我有两个表,我想显示 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 或者我的代码存在缺陷。任何的想法。

【问题讨论】:

  • 您的代码看起来不错。你遇到了什么错误?
  • @TamarE.Granor - 是的,mySQL 代码是正确的,但由于某种原因,它仍然显示两个表中的数字。无论如何,用这个代码而不是SELECT t1.nvalue FROM release_numbers AS t1 LEFT JOIN customer_numbers AS t2 ON t1.nvalue = t2.nvalue WHERE t2.nvalue is null.

标签: mysql foxpro visual-foxpro


【解决方案1】:

改用LEFT JOIN

SELECT t1.*
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.row1 = t2.row2
WHERE t1.row1 IS NULL;

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT * FROM Table1 Right JOIN table2 on Table1.row1 = Table2.row2 WHERE Table1.row1 is not null
    

    我相信你的 Table1 和 Table2 是一个游标,

    【讨论】:

    • 太棒了...你知道我使用光标,我不能投票,因为仍然很少代表。
    【解决方案3】:

    添马舰的评论是正确的。尝试运行以下代码:

    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) 
    

    效果很好。

    【讨论】:

      【解决方案4】:

      我创建的 Table1 和 Table2 的值与您完全相同。
      我已经执行了SELECT * FROM table1 WHERE table1.row1 NOT IN (SELECT row2 FROM table2)
      结果是 1 5 6 7 10。
      代码是对的,结果也是。

      【讨论】:

      • 这更适合作为评论。
      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多