一尘不染

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

mysql

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

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


阅读 350

收藏
2020-05-17

共1个答案

一尘不染

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;

下一步编辑

如果目标是使用t2中尚未存在的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。

2020-05-17