2015-07-19 80 views
0

我目前发现自己陷入困惑,因为这个查询在MySQL中工作正常,但从PHP中不太好。 返回消息状态“操作数应包含1列”。先进的谢谢从两个表中插入不匹配的记录

表1

| TRADE_DATE |打开| HIGH | LOW |关闭| VOLUME |

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

| 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 |打开| HIGH | LOW |关闭| VOLUME |

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

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

回答

0

(A)你不能做一个not in (select [multiple columns]) (B)您not in需要看table1,不表2,因为你正试图从表2涵盖日期合并数据尚未在table1中。

+0

这是一个错误,当我在这里写它感谢指出它的纠正是“不在”...我也发布了表数据以及 – user5132141

+0

目标是将2015-07-17条目添加到表一。通过PHP – user5132141

+0

@ user5132141我编辑了我的答案。希望它能提供你所需要的。随时接受它,如果如此:) –

相关问题