我有两个表事件和来宾以及一个将它们连接在一起的eventGuest表,并且有关于来宾的一些信息(如果他们参加了等等)并且我试图插入到eventGuest表中而不创建类似的重复类型: / p>
insert into eventGuest(eventID, GuestID, attended)
values(iEventID, iGuestID, bAttended)
where (select count(*) from eventGuest where eventID = iEventID and guestID = iGuestID) = 0
答案 0 :(得分:0)
将一个表格数据复制到另一个表格: -
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
答案 1 :(得分:0)
如果要将表中的值插入另一个表,则应使用INSERT INTO ... SELECT
:
INSERT INTO eventGuest(eventID, GuestID, attended)
SELECT iEventID, iGuestID, bAttended
FROM Anothertable t
where NOT EXIST(select 1
from eventGuest e
where e.eventID = t.iEventID
and e.guestID = t.iGuestID);
或者,如果您想要在eventid
和iGuestid
的值不存在的情况下插入到同一个表中,则可以执行以下操作:
INSERT INTO eventGuest(eventID, GuestID, attended)
SELECT *
FROM ( SELECT 'eventid', 'guestid', 'somevalue' ) AS t
WHERE NOT EXISTS (
SELECT 1 FROM eventGuest e
WHERE e.eventID ='eventid'
and e.guestID = 'guestid'
) LIMIT 1;
答案 2 :(得分:0)
请在eventGuest表中为eventid和guestid添加唯一约束,并使用INSERT IGNORE或REPLACE命令插入新数据。