从两个表中插入不匹配的记录

Insert nonmatching records from two tables

我目前感到困惑,因为此查询在 MySQL 中运行良好,但在 PHP 中效果不佳。 return 消息指出 "operand should contain 1 column(s)"。先谢谢你

表 1

| TRADE_DATE |打开 |高 |低 |关闭 |音量 |

+------------+------------+------------+-------- ----+------------+--------+

| 2015-07-16 | 60.779999 | 60.869999 | 60.75 | 60.830002 | 1050400 |

| 2015-07-15 | 60.34 | 60.560001 | 60.220001 | 60.389999 | 1096400 |

| 2015-07-14 | 60.18 | 60.610001 | 60.169998 | 60.549999 | 1328900 |

| 2015-07-13 | 60.00 | 60.23 | 60.00 | 60.18 | 973300 |

| 2015-07-10 | 59.57 | 59.82 | 59.380001 | 59.720001 | 1506700 |

表2 +------------+------------+------------+----------+ ----------+---------+

| TRADE_DATE |打开 |高 |低 |关闭 |音量 |

+------------+------------+------------+-------- ----+------------+--------+

| 2015-07-17 | 60.950001 | 60.950001 | 60.66 | 60.790001 | 731000 |

| 2015-07-16 | 60.779999 | 60.869999 | 60.75 | 60.830002 | 1050400 |

| 2015-07-15 | 60.34 | 60.560001 | 60.220001 | 60.389999 | 1096400 |

| 2015-07-14 | 60.18 | 60.610001 | 60.169998 | 60.549999 | 1328900 |

| 2015-07-13 | 60.00 | 60.23 | 60.00 | 60.18 | 973300

这是查询

    $insertline  = " INSERT INTO `$table1` (SYMBOL, Trade_Date, Open, High, Low, Close, Volume, Adj_Close) SELECT SYMBOL, Trade_Date, Open, High, Low, Close, Volume, Adj_Close FROM `$table2` WHERE TRADE_DATE NOT IN (SELECT * FROM `$table2`) "; 

    $result6     = mysqli_query($dbcon, $insertline) or die(mysqli_error($dbcon));

(A) 你不能做 not in (select [multiple columns]) (B) 您 not in 需要查看 table1,而不是表 2,因为您正试图合并表 2 中包含表 1 中尚未包含的日期的数据。