gpt4 book ai didi

mysql - 用于选择具有多个到主键表的链接的外键行的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 03:52:21 25 4
gpt4 key购买 nike

我有一个(简化的)场景是这样的:

文档表:

   id   |    title   |  text
===========================
1 | Title1 | "AAA"
2 | Title2 | "BBB"
3 | Title3 | "CCC"

文档图片

   id   |   doc_id    |  url
===================================================
1 | 1 | "http://some.domain.com/1.jpg"
2 | 1 | "http://some.domain.com/2.jpg"
3 | 2 | "http://some.domain.com/3.jpg"
4 | 4 | "http://some.domain.com/3.jpg"

让我们将这些表命名为 documentsdoc_pictures。我正在尝试创建一个查询,该查询将返回所有包含不止一张图片的文档。在此示例中,这意味着仅返回 ID 为 1 的文档。

限制和假设:

  1. 这两个表都很大,因此复杂的查询可能需要很长时间。
  2. 我不关心文档有多少外国图片行。我只关心它大于 1。
  3. 我不介意输出是文档的 ID 还是图片表中的行。
  4. 我不介意只获取此类文档的一小部分(例如,包含超过 1 张图片的 10 个文档,而不是包含超过 1 张图片的所有文档)<

数据库是Mysql

最佳答案

这可用于获取文档 ID。

 select 
doc_id,
count(1)
from
doc_pictures
group by
doc_id
having
count(1) > 1

然后您可以使用这些 ID 在 documents 表上使用 where in

像这样:

 select 
*
from
documents
where
id in (
select
doc_id
from
doc_pictures
group by
doc_id
having
count(1) > 1
)

关于mysql - 用于选择具有多个到主键表的链接的外键行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635538/

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