我的SQL代码中的错误在哪里?

时间:2015-04-01 07:05:27

标签: mysql sql database join drupal

'SELECT * FROM t1
          JOIN t2 ON t1.wid = t2.wid
          WHERE t2.wid IS NULL
          LIMIT ' . $number;

此代码没有任何回报给我,你能帮助我为什么不拿回值?

2 个答案:

答案 0 :(得分:1)

JOIN t2 ON t1.wid = t1.wid
你是说那个意思吗?或者你真的是指t1.wid = t2.wid?在这种情况下,您需要左连接。

修改

好的,所以你修好了。除非t2中的行具有与t1中具有相同wid的行匹配的wid,否则不会显示任何结果。

如果您需要结果,请将其更改为:

'SELECT * FROM t1
          LEFT JOIN t2 ON t1.wid = t2.wid
          WHERE t2.wid IS NULL
          LIMIT ' . $number;

下一次编辑

如果目标是使用t1中的值来更新t2,而这些值在t2中是不可能的,那么它将是这样的:

'INSERT INTO t2 
   SELECT t1.* FROM t1
     LEFT JOIN t2 
        ON t1.wid = t2.wid
     WHERE t2.wid IS NULL
     LIMIT ' . $number;

缺少的步骤只是返回t1的结果,然后将它们插入到t2中。

答案 1 :(得分:0)

我认为你有一个错字。

'SELECT * FROM t1
              JOIN t2 ON t1.wid = t2.wid
              WHERE t2.wid IS NULL
              LIMIT ' . $number;