Using id that are comma separated sql(使用逗号分隔的 sql id)
问题描述
如果您运行此查询
select
GROUP_CONCAT(p1.id) _fid,
GROUP_CONCAT(p2.id) _mid,
count(1)
from
new_person as pb
inner join
new_person as p1 ON pb.father_id = p1.id
inner join
new_person as p2 ON pb.mother_id = p2.id
where
(p1.last_name <> 'N.N.'
and p1.last_name <> '')
or (p2.last_name <> 'N.N.'
and p2.last_name <> '')
group by p1.first_name , p1.last_name , p2.first_name , p2.last_name
having count(1) > 1;
你会像这样得到一个 id 列表
you get a list of id back like this
'4676,6088,4804,4968,6554,5212,5504,5810,7298,7782,6970'
有没有办法让你可以立即在其他查询中使用它,还是必须先在 php 中加载它?
Is there a way so you can immediately use it in a other query or do you have to load it in php first?
推荐答案
你可以像这样在另一个查询中使用它:
You can use it in another query like so:
SELECT M.*, P.* FROM
(
SELECT GROUP_CONCAT(p1.id) _fid, GROUP_CONCAT(p2.id) _mid, count(1)
FROM new_person AS pb
INNER JOIN new_person AS p1 ON pb.father_id = p1.id
INNER JOIN new_person AS p2 ON pb.mother_id = p2.id
WHERE (
p1.last_name <> 'N.N.'
AND p1.last_name <> '')
OR (p2.last_name <> 'N.N.'
AND p2.last_name <> '')
GROUP BY p1.first_name, p1.last_name, p2.first_name, p2.last_name
HAVING COUNT(1) > 1
) AS M INNER JOIN new_person as p ON M._fid = p.id
请注意,我将整个查询添加到 from 语句中,别名为 M.然后你可以 JOIN M 到另一个表或从那里做任何你想做的事情.
Notice I added the entire query to the from statement with the alias as M. You can then JOIN M to another table or do whatever you want from there.
这篇关于使用逗号分隔的 sql id的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用逗号分隔的 sql id
基础教程推荐
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 无法解决整理冲突 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
