在PHP中,如何比较三个查询以选择相应的行?

时间:2011-12-24 03:01:34

标签: php sql

我有三个单独的查询,用于根据变量选择用户。每个用户都有一个唯一的用户ID,在每个表上受查询影响。有没有办法,使用PHP,我只能选择返回所有三个查询的用户?

2 个答案:

答案 0 :(得分:0)

假设必须独立运行3个查询,您可以使用union查询将三个invididual结果集集中到一个集合中,然后执行外部查询以检查哪些userID有3个不同的源:

select count(SOURCE) as cnt, userID
from (
    select 'tableA' as SOURCE, userID
    from tableA
    where ...

    union all

    select 'tableB' as SOURCE, userID
    from tableB
    where ...

    union all

    select 'tableC' as SOURCE, userID
    from tableC
    where ...
) as subquery
group by userID
having cnt = 3

答案 1 :(得分:0)

是的,使用公共字段在所有三个表上进行内连接。

例如:

 Select cola, colb
 From tablea join tableb
 On a.commoncolumn=b.commoncolumn
 Join tablec on a.commoncolumn=c.commoncolumn
 Where ...