質問があります。彼をスティーブと呼びましょう。
スティーブは、テーブル 1 にある 6 つの列のデータを含む行をテーブル 2 に挿入すると想定されていますが、テーブル 3 の列の値と一致するテーブル 1 の行のみを選択します...さらに、スティーブが重複するエントリを見つけた場合、table-2 の値を table-1 の値で更新するだけです。
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
サブクエリが結果、具体的にはステートメントを 返さないため、Steve は私が要求したことを実行しないことを理解する必要があります。
私が彼をテストしていて、彼にプリフォームするように頼んだとき:
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
彼は私に同じエラーを出します。
スティーブに自分の仕事をするように指示し、私をあざけるのをやめる方法について何かアドバイスはありますか?