Sql 返回每个联接表项的所有项,但仅返回第一项
此查询返回与容器\u B相关的所有容器\u A项目的所有元素。Sql 返回每个联接表项的所有项,但仅返回第一项,sql,sql-server,join,Sql,Sql Server,Join,此查询返回与容器\u B相关的所有容器\u A项目的所有元素。 问题是-如何仅获取与每个容器项目相关的第一个(最小Id)项目。这样的查询的问题是,“第一个”没有任何意义,除非您指定项目在组中的顺序。如果您想要最低的项目id,则可以在容器b上分组,并使用minaggreagate从每组中获取最低的项目id: SELECT Id FROM Container_A JOIN Container_B ON Container_A.Container_B_FK = Container_B.Id OR
问题是-如何仅获取与每个容器项目相关的第一个(最小Id)项目。这样的查询的问题是,“第一个”没有任何意义,除非您指定项目在组中的顺序。如果您想要最低的项目id,则可以在容器b上分组,并使用
min
aggreagate从每组中获取最低的项目id:
SELECT Id
FROM Container_A
JOIN Container_B
ON
Container_A.Container_B_FK = Container_B.Id
ORDER BY Container_A.Id
SELECT Id
FROM Container_A
JOIN Container_B
ON Container_A.Container_B_FK = Container_B.Id
ORDER BY Container_A.Id ASC
LIMIT 0,1
像这样的查询的问题是,“first”没有任何意义,除非您指定组中项目的顺序。如果您想要最低的项目id,则可以在容器b上分组,并使用
min
aggreagate从每组中获取最低的项目id:
SELECT Id
FROM Container_A
JOIN Container_B
ON Container_A.Container_B_FK = Container_B.Id
ORDER BY Container_A.Id ASC
LIMIT 0,1
非常感谢您对所有这些的帮助和描述。这真的很有帮助。另外,现在我知道了将来如何处理这些事情:)非常感谢您的帮助和对所有这些的描述。这真的很有帮助。再加上现在我知道以后怎么处理这样的事情:)
SELECT Id
FROM Container_A
JOIN Container_B
ON Container_A.Container_B_FK = Container_B.Id
ORDER BY Container_A.Id ASC
LIMIT 0,1
select
b.Id,
min(a.Id) as A_Id
from
Container_B b
inner join Container_A a on a.Container_B_FK = b.Id
group by
b.Id
order by
b.Id