gpt4 book ai didi

sql - 我怎样才能采用两个单独的 sql 查询的 UNION 并仅获取 DISTINCT 值

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:47 24 4
gpt4 key购买 nike

如何在 PHP 中从我的这两个查询中仅获取不同的值:

$query1 = "SELECT g.name, g.hash, g.views
FROM c7_groups g, c7_groups_affiliations ga
WHERE g.category >= 592 AND g.category <= 622
AND ga.affiliated_groups_hash = g.hash
AND LOWER(g.name) LIKE LOWER('%$school_name%')
";
$query2 = "SELECT g.name, g.hash, g.views
FROM c7_groups g, c7_groups_affiliations ga, c7_affiliations a
WHERE ga.affiliations_id = a.id
AND ga.groups_hash = g.hash
AND LOWER(a.name) LIKE LOWER('%$school_name%')";

我只想从这两个查询中获取不同的“g.hash”。如果我可以使用一个 sql 查询来完成这两项任务,那就更好了。

关于我的数据库表的详细信息如下:c7_groups:id int(10)
名称 varchar(255)
哈希 varchar(32)groups_categories_id int(10) View int(10)

c7_affiliations标识整数(10)名称 varchar(100)
groups_categories_id int(10)

c7_groups_affiliationsgroups_hash varchar(32) affiliated_groups_hash varchar(32)--------FKey to c7_groups.hash
affiliations_id int(10)--------------------FKey to c7_affiliations.id
id int(10)

affiliated_groups_hash 和 affiliations_id 都可以为空,或者我应该说一个或它们总是为空。如果一个组隶属于另一个组,则 affiliations_id 将为空,如果该组隶属于另一个从属关系,则 affiliated_groups_hash 将为空。

如果您需要有关任何内容的更多详细信息,请告诉我。

问候泽山

最佳答案

只需在子选择中进行并集,然后按派生表进行分组。

select name,count(*) from
(
SELECT g.name, g.hash, g.views
FROM c7_groups g, c7_groups_affiliations ga
WHERE g.category >= 592 AND g.category <= 622
AND ga.affiliated_groups_hash = g.hash
AND LOWER(g.name) LIKE LOWER('%$school_name%')
UNION
SELECT g.name, g.hash, g.views
FROM c7_groups g, c7_groups_affiliations ga, c7_affiliations a
WHERE ga.affiliations_id = a.id
AND ga.groups_hash = g.hash
AND LOWER(a.name) LIKE LOWER('%$school_name%')";
) as myTbl
group by name

关于sql - 我怎样才能采用两个单独的 sql 查询的 UNION 并仅获取 DISTINCT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4549595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com