MySQL插入表中的值和where

时间:2015-10-22 09:08:10

标签: mysql

我有两个表事件和来宾以及一个将它们连接在一起的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

3 个答案:

答案 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);

或者,如果您想要在eventidiGuestid的值不存在的情况下插入到同一个表中,则可以执行以下操作:

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命令插入新数据。