我有一个问题,我们就叫他史蒂夫吧。
史蒂夫应该将包含来自 table-1 中的六列的数据的行插入到 table-2 中,但只从 table-1 中选择与 table-3 中的列中的值匹配的行......并且,如果 Steve 发现任何重复的条目,只需使用表 1 中的值更新表 2 中的值。
INSERT INTO nht_mlslookup (MSTLISTBRD,MSTMLSNO,MSTACTSTA,MSTSTRNO,MSTSTRNAM,MSTUNITNUM)
SELECT (MSTLISTBRD,MSTMLSNO,MSTACTSTA,MSTSTRNO,MSTSTRNAM,MSTUNITNUM) FROM nht_mls AS mls
INNER JOIN nht_agtdata AS agt ON mls.MSTLISTBRD = agt.agentid
ON DUPLICATE KEY UPDATE nht_mlslookup.MSTMLSNO = mls.MSTMLSNO;
问题是……我想我弄坏了史蒂夫?他想做的就是这个。
ERROR 1241 (21000): Operand should contain 1 column(s)
我理解史蒂夫没有按照我的要求做,因为子查询没有返回结果,特别是SELECT ...INNER JOIN
语句。
当我测试他并要求他进行预演时:
SELECT * FROM jos_mls AS mls
INNER JOIN jos_activeagents AS active ON mls.MSTLISTBRD = active.AGENTUID
他做我期望他做的事。
但是当我让他抓取特定的列时:
SELECT (MSTLISTBRD,MSTMLSNO,MSTACTSTA,MSTSTRNO,MSTSTRNAM,MSTUNITNUM) FROM jos_mls AS mls
INNER JOIN jos_activeagents AS act ON mls.MSTLISTBRD = act.AGENTUID
他给了我同样的错误。
关于如何指导史蒂夫完成他的工作而不是让我到处乱跑的任何建议?