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