从两个表中插入不匹配的记录
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 中尚未包含的日期的数据。
我目前感到困惑,因为此查询在 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 中尚未包含的日期的数据。