繁体   English   中英

MYSQL,PHP:仅当项目ID不在第二个表中时,才从表1插入INTO table2

[英]MYSQL, PHP: INSERT INTO table2 from table 1 only if the project ID is not in second table

我有2张桌子:销售线索和项目。 仅手工填充引线。 当线索记录被分配为项目时,应将其插入项目表中。

我需要选择列project_numbertitlesegmenttype_projectsource从表management_leads并插入到表management_projects在列project_numbertitlesegmenttype_projectsource仅当management_leads.project_number不在存在management_projects.project_number列。

到目前为止,这是我目前无法使用的内容:

$query="INSERT INTO p_management_projects (project_number,title, segment, type_project) 
SELECT  project_number, title, segment, type_project FROM `p_management_leads` AS leads, 
`p_management_projects` AS projects WHERE leads.status='Project' AND
leads.transfered='No' AND leads.projects_number != projects.projects_number";

这应该工作:

insert into management_projects (project_number, title, segment, type_project, source)
  select l.project_number, l.title, l.segment, l.type_project, l.source
    from management_leads l
      left join management_projects mp
        on l.project_number = mp.project_number
  where mp.project_number is null;

我们从management_leads表中插入,并left joinedmanagement_projects表,但是仅在management_projects值为null的情况下-这意味着project_number上没有匹配项。

另一种方法将使用where not exists ,而不是左连接:

 insert into management_projects (project_number, title, segment, type_project, source)
      select project_number, title, segment, type_project, source
        from management_leads l
        where not exists
          (select 1 
             from management_projects 
             where project_number = l.project_number)

最后一种选择是对management_projects.project_number施加unique constraint ,并使用insert ignore

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM