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


这段代码什么也没给我,您能帮我为什么不收回价值吗?

最佳答案

JOIN t2 ON t1.wid = t1.wid


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

编辑

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

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

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


下一步编辑

如果目标是使用t1中尚未包含的t1中的值更新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。

关于mysql - 我的sql代码哪里出了问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29384809/

10-11 06:19