我的 sql 代码哪里出了问题?

where is the fault in my sql code?

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

这段代码对我来说毫无意义 returns 你能帮我解释一下为什么我不取回值吗??

JOIN t2 ON t1.wid = t1.wid

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

编辑

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

如果你想要结果,把它改成这样:

'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;

缺少的步骤只是return只有t1的结果,然后将它们插入t2。

我想你打错了。

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