2014-04-03 95 views
0

我想INSERT新行与此值(hotelNo,guestNo,dataform,dataTo,roomNo) 我知道酒店名称,所以我必须从另一个表中选择hotelNo,它didn和我一起工作,有什么不对吗?SQL,插入与选择

INSERT INTO Booking 
VALUES (hotelNo,123,'3-sept-1014','3-sept-1014',121) 
(SELECT hotelNo 
FROM Hotel 
WHERE hotelName='Ritz Carlton' AND city='Dubai'); 
+0

可能重复进...值(SELECT ... FROM ...) ](http://stackoverflow.com/questions/25969/sql-insert-into-values-select-from) –

回答

5

从您的查询中删除VALUES (hotelNo,...并且您很好去。

INSERT INTO Booking 
(SELECT hotelNo,123,'3-sept-1014','3-sept-1014',121 
FROM Hotel 
WHERE hotelName='Ritz Carlton' AND city='Dubai') 
+0

这不会工作,你应该从查询 –

+0

删除'VALUES'不工作:(它给这个错误:失踪表达式 – BSMN

+0

@BSMN:你确定你有5个字段在表中? –

3

你应该这样做没有VALUES

INSERT INTO Booking 
(SELECT hotelNo, 123, '3-sept-1014','3-sept-1014',121 
FROM Hotel 
WHERE hotelName='Ritz Carlton' AND city='Dubai'); 
+0

谢谢你,但它不工作,它给了我这个错误:SQL命令没有正确结束 – BSMN

+0

你是否使用多个查询?如果是的话,你应该结束每个';' –

+0

检查这出了http://stackoverflow.com/questions/72151/ora-00933-sql-command-not-properly-ended –

1

试试这个:

INSERT INTO Booking VALUES (
(SELECT hotelNo 
FROM Hotel 
WHERE hotelName='Ritz Carlton' AND city='Dubai'), 
123,'3-sept-1014','3-sept-1014',121); 
的[SQL插入
+0

它的工作原理!谢谢 – BSMN