mysql - SQL从多个表中选择数据

标签 mysql sql

我正在尝试使用 mySQL 从以下格式的多个表 (10+) 中进行选择。

+----------table(n)-----------+
+-----------------------------+
| url       | id        | ... |
+-----------+-----------+-----+
| url1.com  | 12345678  | ... |
| url2.com  | 45832458  | ... |

我需要做的是从每个表中检索给定 URL 的 ID,并像这样在一行中返回它。

+--------------table(n)--------------+
+------------------------------------+
| url       | table(n)  | table(n+1) |
+-----------+-----------+------------+
| url1.com  | 12345678  | 8182735    |

但是给定表的 URL 可能不存在,所以我只需要从找到 URL 的表中检索所有 ID。

例如,我有 10 个表,其中 4 个有 URL/id。我需要在一行中检索这 4 个。我已尝试对列使用别名以及各种 JOIN 组合,但均无济于事。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用union allgroup by 来做到这一点:

select url,
       max(id1) as id1, max(id2) as id2, . . .
from ((select url, id as id1, NULL as id2, . . .  from table1) union all
      (select url, NULL as id1, id as id2, . . .  from table1) union all
      . . .
     ) t
group by url;

关于mysql - SQL从多个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32248980/

相关文章:

mysql - 使数据库中的记录过期的最佳方法/选项是什么?

python - 如何将分类器和参数转储到表中?

java - 如何连接两个表并将其用作jpa存储库

mysql - 如果行不存在,如何添加组合值?

sql - 嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句必须在 UPDATE 中有一个 OUTPUT 子句

php - 来自 MySQL 查询的意外数组值

php - php问题中的多个数据库连接

mysql - 根据日期 SQL 的范围进行计数

mysql - 如何设置触发器以将 user_id 复制到另一个表

python - 如何检查 Django 模型的两个实例在一组属性中是否相同并相应地注释查询集?