在一个表的语句中添加两个select

时间:2014-10-24 18:05:33

标签: php sql select insert

INSERT INTO tablo (name1,tel1,name2,tel2) 
SELECT name, tel from table ORDER BY id desc && select name,tel from table

我的目标是,有一个名为sumo的表,我们想通过一些特定的操作来传输另一个表。前两列通过使用来自table2的id desc的顺序获取值,最后两列通过使用来自表2的id asc的顺序获取值。 我尝试同时使用它们但我不能。 如何将它们结合起来?

2 个答案:

答案 0 :(得分:1)

你必须有一个FROM表,你必须匹配列才能进行INSERT INTO SELECT -

INSERT INTO `tablo` (`name1`,`tel1`) 
SELECT `name`,`tel` 
FROM `some other table`
ORDER BY `id`,`name`, `tel` DESC;

如果你需要来自两个表的数据,你将不得不做一个JOIN或一个UNION

答案 1 :(得分:0)

我发现很难理解这个问题,但我认为这个例子可能会有所帮助。

如果我推测以下内容:

   PurchaseID | OrderID | CustomerID |        OrderID | CustomerID | CustomerName | Customertel |
   -------------------------------------     ----------------------------------------------------
       1      |   1001  |            |          1001  |   675443   |     Fred     | 01817487721 |

我想在第一个表格中输入客户ID:

       /* Table1 is main table to update */
       update Table1
       /* Set Table1 fieldname to be matched and replaced by desired fieldname in Table2 */
       set Table1.CustomerID = Table2.CustomerID
       from Table2
       where
       /* Lets match the data to get ID */
      Table2.OrderID = Table1.OrderID

如果我想在第一个表中添加更多字段,我可以使用'AND'扩展'SET'语句。