我想要通過檢查第一個表上的條件從哪個表中插入值到另一個表的sql查詢。插入...從...中選擇條件的查詢
我必須檢查該行是否存在於第一個表中。如果不存在,則添加,否則不要添加。
在sql中有查詢「insert into select from」模式。
我試過下面的查詢。但它插入許多重複項。
INSERT INTO
company_location (company_id, country_id, city_id)
SELECT
ci.company_id, hq_location, hq_city
FROM
company_info ci, company_location cl
WHERE
ci.company_id <> cl.company_id
AND cl.country_id <> ci.hq_location
AND cl.city_id <> ci.hq_city;
重複迴避意味着元組(company_id,country_id,city_id)不應再次添加。我必須從更多的4個表格中添加這些表格。
此外我需要查詢刪除company_location重複。即(company_id,country_id,city_id)的組合應該僅存在一次。只保留一個元組並刪除其他行。
將問題分爲兩部分:首先定義一個合適的查詢,返回所需的值,然後使用此查詢將值插入到第二個表中。似乎「插入」部分的問題是無關緊要的。 – 2012-02-04 06:52:18
@ No'am Newman:在sql中有查詢「insert into select」模式。 – 2012-02-04 07:08:26
'company_info'中是否有重複?除此之外,我看不到這個查詢將如何插入'company_location'中已存在的記錄。 – vhallac 2012-02-04 08:42:35