如何将这两个查询合并为比较查询

dlofrodloh

目前,我有以下两个查询:

"SELECT company.id, company.name, 
        contact.firstname, contact.lastname, 
        contact.email, contact.id AS contactid
   from ecampaign_lookup
   LEFT JOIN company ON ecampaign_lookup.companyid=company.id 
   LEFT JOIN contact ON ecampaign_lookup.contactid=contact.id
  WHERE ecampaign_lookup.campaignid=".$tid;

和:

"SELECT company.id, company.name, 
         contact.firstname, contact.lastname, 
         contact.email, contact.id AS contactid
   from ecampaign_lookup
   LEFT JOIN company ON ecampaign_lookup.companyid=company.id 
   LEFT JOIN contact ON contact.companyid=company.id
  WHERE ecampaign_lookup.campaignid=".$tid." 
    AND contact.defaultcontact=1";

不同之处在于,第一个查询从“ ecampaign_lookup”表返回联系人,第二个查询从“ company”表返回联系人。第二个查询还要求仅选择'contact.defaultcontact = 1'的联系人,因为每个公司有很多联系人,但每个ecampaign_lookup只有一个联系人。

目前,我分别运行这两个查询,然后使用for循环比较结果,如果一个查询的返回值小于或大于另一个查询,则很容易出错:

        for ($x=0;$x<count($query1_result);$x++){
                if ($query1_result[$x]['contactid']!=$query2_result[$x]['contactid']){
                     echo $query1_result[$x]['firstname']." has been replaced by ".
                     $query2_result[$x]['firstname'];   
                }
        }   

如何将两个查询合并在一起,以将ecampaign_lookup.contactid与第二个查询中的contact.id进行比较,并且仅返回两个不匹配的结果?

dlofrodloh

好的,经过反复尝试,我找到了使用子查询的解决方案:

 SELECT company.id,
       company.NAME,
       contact.firstname,
       contact.lastname,
       contact.email,
       contact.id AS contactid
FROM   ecampaign_lookup
       LEFT JOIN company
              ON ecampaign_lookup.companyid = company.id
       LEFT JOIN contact
              ON contact.companyid = company.id
WHERE  ecampaign_lookup.campaignid = :tid
       AND contact.defaultcontact = 1
       AND contact.id NOT IN (SELECT contact.id AS contactid
                              FROM   ecampaign_lookup
                                     LEFT JOIN company
                                            ON
                                     ecampaign_lookup.companyid = company.id
                                     LEFT JOIN contact
                                            ON
                                     ecampaign_lookup.contactid = contact.id
                                     WHERE  ecampaign_lookup.campaignid = :tid)  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将这两个查询合并为比较查询

来自分类Dev

如何将这两个linq查询合并为一个查询?

来自分类Dev

如何将这两个单独的聚合查询合并为一个查询?

来自分类Dev

如何将这两个选择查询合并为一个查询?

来自分类Dev

如何将这两个查询合并为一个?

来自分类Dev

如何将这两个不同的LINQ查询合并为一个?

来自分类Dev

如何将这两个查询合并为一个?

来自分类Dev

如何将这两个查询合并为1以满足条件?

来自分类Dev

如何将这两个MySQL选择查询合并为一个以防止循环?

来自分类Dev

如何将两个查询合并为一行查询

来自分类Dev

我可以将这两个SQL查询合并为一个吗?

来自分类Dev

如何将两个联接查询合并为一个?

来自分类Dev

如何将两个SQL查询的结果合并为一个

来自分类Dev

如何将两个SQL查询合并为一个?

来自分类Dev

如何将两个基于 if-else 的相似查询合并为一个

来自分类Dev

Laravel 如何将两个查询结果合并为一个对象

来自分类Dev

如何将两个查询的结果合并为一行?

来自分类Dev

如何将两个查询合并为1的SQL Server 2008

来自分类Dev

SQL Server CE:如何将两个查询的结果合并为一行?

来自分类Dev

如何将这两个Lambda合并为一个GroupBy调用?

来自分类Dev

如何将这两个SELECT语句合并为一个

来自分类Dev

如何将这两个while语句合并为一个?

来自分类Dev

如何将两个有效的 SELECT 查询合并为一个查询?

来自分类Dev

如何将这两个查询循环转换为单个JOINed查询?

来自分类Dev

EF6:如何将两个不同的count()查询合并为一个?

来自分类Dev

如何使用联接来合并这两个查询?

来自分类Dev

如何合并这两个linq查询的输出?

来自分类Dev

如何合并这两个MySQL Select查询?

来自分类Dev

如何合并这两个Access Sql查询

Related 相关文章

  1. 1

    如何将这两个查询合并为比较查询

  2. 2

    如何将这两个linq查询合并为一个查询?

  3. 3

    如何将这两个单独的聚合查询合并为一个查询?

  4. 4

    如何将这两个选择查询合并为一个查询?

  5. 5

    如何将这两个查询合并为一个?

  6. 6

    如何将这两个不同的LINQ查询合并为一个?

  7. 7

    如何将这两个查询合并为一个?

  8. 8

    如何将这两个查询合并为1以满足条件?

  9. 9

    如何将这两个MySQL选择查询合并为一个以防止循环?

  10. 10

    如何将两个查询合并为一行查询

  11. 11

    我可以将这两个SQL查询合并为一个吗?

  12. 12

    如何将两个联接查询合并为一个?

  13. 13

    如何将两个SQL查询的结果合并为一个

  14. 14

    如何将两个SQL查询合并为一个?

  15. 15

    如何将两个基于 if-else 的相似查询合并为一个

  16. 16

    Laravel 如何将两个查询结果合并为一个对象

  17. 17

    如何将两个查询的结果合并为一行?

  18. 18

    如何将两个查询合并为1的SQL Server 2008

  19. 19

    SQL Server CE:如何将两个查询的结果合并为一行?

  20. 20

    如何将这两个Lambda合并为一个GroupBy调用?

  21. 21

    如何将这两个SELECT语句合并为一个

  22. 22

    如何将这两个while语句合并为一个?

  23. 23

    如何将两个有效的 SELECT 查询合并为一个查询?

  24. 24

    如何将这两个查询循环转换为单个JOINed查询?

  25. 25

    EF6:如何将两个不同的count()查询合并为一个?

  26. 26

    如何使用联接来合并这两个查询?

  27. 27

    如何合并这两个linq查询的输出?

  28. 28

    如何合并这两个MySQL Select查询?

  29. 29

    如何合并这两个Access Sql查询

热门标签

归档