1
我有一個表SEND
與一列Aname
複製單一列的單一行:插入記錄通過從另一個表
Aname
------
GREAME
PETER
另一個表RECEIVE
2列:
Aname Permission
-----------------------------------------------
GREAME (copied from table SEND) 'my own value will be inserted here,
specified in insert query'
PETER (copied from table SEND) 'my own value will be inserted here,
specified in insert query'
現在如上所示,我想插入一個新表RECEIVE
只有Aname
列從表SEND
,並在第二列我會插入一個新的值。
另外,我想,沒有重複的值可能會在RECEIVE
表中插入:
我想這一點:
Aname Permission
---------------------
GREAME PLAYER
GREAME PLAYER --- COULD NOT BE INSERTED
GREAME SALESMAN --- COULD BE INSERTED
我使用此查詢:
insert into receive(Aname, Permission)
select Aname , 'Select'
from SEND
where not exists
(select * from RECEIVE where Aname = 'GREAME' and Permission = 'select')
此查詢時間兩個名字GREARK & PETER從SEND
表中插入到RECEIVE
表中,但我希望只有GREAME被拿起,而不是PETER。
我該怎麼做?
它會從表發送所有行,並將它們插入表RECEIVE中,但我希望只插入一行。所以我想查詢是這樣,但它提供了語法錯誤:
insert into RECEIVE(Aname , Permission)
select Aname , 'select'
from SEND
WHERE Aname = 'GREAME' -------------this line gives error
where not exists
(select * from RECEIVE where aname = 'GREAME' and Permission = 'select')
@msrc_s:先生,其捐贈語法錯誤,而且我知道我們不能同時採用兩種where子句,但我希望查詢執行工作的其描述。 – sqlchild 2011-03-07 06:09:49