Php 带条件子选择的MySQL复杂插入?

Php 带条件子选择的MySQL复杂插入?,php,mysql,insert,Php,Mysql,Insert,因此,我无法正确创建此查询 基本上,我想在通知表中插入多行,插入的每一行都有一个唯一的收件人id,不会重复,收件人id是通过检查注释的匹配目标id或流的id并检查与每个注释/流关联的作者id来确定的。此外,我希望查询排除与发件人id匹配的所选作者id的行插入 下面是我所需要的基本sql标记 INSERT INTO notification (type, target_id, sender_id, recipient_id, data, timestamp, is_unread) SELECT D

因此,我无法正确创建此查询

基本上,我想在通知表中插入多行,插入的每一行都有一个唯一的收件人id,不会重复,收件人id是通过检查注释的匹配目标id或流的id并检查与每个注释/流关联的作者id来确定的。此外,我希望查询排除与发件人id匹配的所选作者id的行插入

下面是我所需要的基本sql标记

INSERT INTO
notification (type,
target_id,
sender_id,
recipient_id,
data,
timestamp,
is_unread)
SELECT DISTINCT 'comment', 
'$id',
'$senderId',
(comment.author_id OR stream.author_id), 
'$dataArray',
'$timestamp', 
'1'
FROM 
    stream,
    comment
WHERE 
    stream.author_id != '$senderId'
    AND comment.author_id != '$senderId'
    AND stream.id = '$id'
    OR comment.target_id = '$id'

你所拥有的似乎很好。您可以尝试使用COALESCEstream.author\u id,comment.author\u id,因此如果评论作者id为空,例如,因为作者id是发送者,它将依赖于流的作者id。要使此工作正常,您必须将流上的评论和流上的评论作者id!='$senderId的条件必须是ON子句的一部分。

那么查询的结构如何?我没有使用COALESCEfield1,field2的经验