2017-05-07 47 views
-1

我有一個名爲HotelReviews的表,我想填充另一個表,名爲Hotels with HotelReviews中的數據。將數據插入另一個表中的表中並刪除某些列中的重複項

這些都是一些HotelReviews具有列:HOTEL_ID,價格,等級,網址,作者,內容......所以一個例子輸入可能是:

INSERT INTO HotelReviews(hotel_id, price, rating, url, author, content...) VALUES (65729, 100, 4, ''http://www.tripadvisor.com/...', 'rick76', 'I enjoyed my stay.'...); 

INSERT INTO HotelReviews(hotel_id, price, rating, url, author, content...) VALUES (65729, 100, 4, ''http://www.tripadvisor.com/...', 'eve66', 'I enjoyed my stay.'...); 

這說明兩個用戶撰寫的評論爲同一家旅館。

酒店有以下欄目:HOTEL_ID,價格,等級,網址

HOTEL_ID和URL是唯一的,所以我需要消除重複和instert信息每家酒店只有一次。

我試圖做到這一點,但沒有奏效:

INSERT INTO Hotels(hotel_id, price, rating, url) 
SELECT DISTINCT hotel_id, price, rating, url 
FROM HotelReviews; 

誰能幫助?

回答

1

假設您有這兩列定義的唯一約束,你可以使用INSERT OR IGNORE

insert or ignore into hotels(hotel_id, price, rating, url) 
select hotel_id, 
    price, 
    rating, 
    url 
from hotelreviews; 
1

什麼

INSERT INTO Hotels(hotel_id, price, rating, url) 
SELECT hotel_id, price, rating, url 
FROM (
    SELECT DISTINCT hotel_id, price, rating, url 
    FROM HotelReviews 
) 
+0

這是如何有用嗎?如果在其他列中有兩行具有相同hotel_id和url的不同值,該怎麼辦? – GurV

相關問題