2014-04-03 122 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