gpt4 book ai didi

MySQL合并多个表的数据

转载 作者:行者123 更新时间:2023-11-29 11:45:56 24 4
gpt4 key购买 nike

我有几个表,一个包含主要内容的表,以及一些使用子类创建的表。

这个项目是在MySQL中

父表

===========================
| id | name |
---------------------------
| 1 | website 1 |
| 2 | website 2 |
| 3 | website 3 |
===========================

child_table_1(例如 cooking 网站)

=========================================================
| id | fk | url | books_for_sale |
---------------------------------------------------------
| 1 | 1 | http://foo.com | Cooking food |
| 2 | 3 | http://bar.com | Cooding bars |
=========================================================

child_table_2(例如游戏网站)

========================================================
| id | fk |url | games_for_sale |
--------------------------------------------------
| 1 | 2 |http://dad.com | Daddy Daycare |
========================================================

现在我需要将所有表中的信息合并为一个。

========================================================================
| id | fk |url | books_for_sale | games_for_sale|
------------------------------------------------------------------------
| 1 | 1 |http://foo.com | Cooking food | |
| 2 | 2 |http://dad.com | | Daddy Daycare |
| 3 | 3 |http://bar.com | Cooding bars | |
========================================================================

我尝试过这个:

SELECT * FROM parent_table
LEFT JOIN child_table_1
ON parent_table.id = child_table_1.id
LEFT JOIN child_table_2
ON parent_table.id = child_table_2.id

还有这个:

SELECT * FROM parent_table
LEFT JOIN child_table_1
ON parent_table.id = child_table_1.id
LEFT JOIN child_table_2
ON child_table_1.id = child_table_2.id

但它们根本不起作用。
我返回的只是连接中最后一个表的内容。

在实际情况中,我需要使用大约十几个包含不同列的表。

我希望有人能帮助我。如果有人知道在 Django 中做到这一点的好方法,那就更好了。

提前致谢。

最佳答案

看来您正在尝试使用每个表的主键来连接表,而不应该使用外键,这样您就可以建立一对多关系。

id 列标识该特定表的每一行,您需要一个 websiteid 列作为 urls 表中的外键,这样您就可以将外键与主键进行匹配。

从表1中选择*在 table2.fkid = table1.id 上加入 table2

另一个可能有效的选择是 union

从父表中选择 *左连接child_table_1ONparent_table.id = child_table_1.fkid联合所有从父表中选择 *左连接child_table_2ONparent_table.id = child_table_2.fkid

此外,您还必须确保两个 select 语句包含相同的列

关于MySQL合并多个表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34949881/

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