【问题标题】:Insert nonmatching records from two tables从两个表中插入不匹配的记录
【发布时间】:2015-07-19 11:46:02
【问题描述】:

我目前发现自己很困惑,因为这个查询在 MySQL 中运行良好,但在 PHP 中不太好。 返回消息指出“操作数应包含 1 列”。提前谢谢你

表1

|交易日期 |打开    |高    |低     |关闭   |音量 |

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

| 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 +------------+-----------+------------+-----------+ ------------+---------+

|交易日期 |打开    |高    |低     |关闭   |音量 |

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

| 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));

【问题讨论】:

    标签: php mysql database sql-insert


    【解决方案1】:

    (A) 你不能做not in (select [multiple columns]) (B) 你 not in 需要查看 table1,而不是 table2,因为你正在尝试合并 table2 中的数据,这些数据涵盖了 table1 中尚未包含的日期。

    【讨论】:

    • 我在这里写的时候是个错误,谢谢你指出更正是“NOT IN”......我也发布了表格数据
    • 目标是将 2015-07-17 条目添加到表一。通过 PHP
    • @user5132141 我已经编辑了我的答案。希望它能提供你需要的东西。如果是,请随意接受它:)
    • 感谢您为我指出正确的方向,刚刚进行了更正
    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多