mysql - 连接不同表中的两个单元格

时间:2018-02-06 11:43:47

标签: mysql foreign-keys

我正在尝试做一些非常基本但不可能绕过这个问题的事情。 我有2张桌子。第一个是存储页面架构的表,第二个存储一些内容。偶尔,我想从我的第一张桌子上打电话给我。我试图创建一个外键,但只显示内容的ID。

这是我的表1(页面模型)的结构

1 idPrimaire int(11)Non Aucun(e)AUTO_INCREMENT

2 client varchar(100)utf8_general_ci Non Aucun(e)
3 nom_document varchar(100)utf8_general_ci非Aucun(e)
4 type_page varchar(100)utf8_general_ci非Aucun(e)
5 nom_page varchar(100)utf8_general_ci非Aucun(e)
6 valeur_contenu int(11)Non Aucun(e)
7 ordre int(11)Non Aucun(e)

这是我的表2的结构(一般内容)

1 idPrimaire int(11)Non Aucun(e)AUTO_INCREMENT

2 nom_liste varchar(100)utf8_general_ci非Aucun(e)
3 nom_contenu varchar(255)utf8_general_ci非Aucun(e)
4 valeur_contenu text utf8_general_ci非Aucun(e)
5 type_contenu varchar(100)utf8_general_ci非Aucun(e)

所以我要找的是连接表1& 2为了能够从table1中调用一些内容

2 个答案:

答案 0 :(得分:1)

您需要在第二张桌子上放一个外键,这样才能JOIN他们在一起。

例如

表1

1 idPrimaire int(11) Non Aucun(e) AUTO_INCREMENT
2 client varchar(100) utf8_general_ci Non Aucun(e)
3 nom_document varchar(100) utf8_general_ci Non Aucun(e)
4 type_page varchar(100) utf8_general_ci Non Aucun(e)
5 nom_page varchar(100) utf8_general_ci Non Aucun(e)
6 valeur_contenu int(11) Non Aucun(e)
7 ordre int(11) Non Aucun(e)

表2

1 idPrimaire int(11) Non Aucun(e) AUTO_INCREMENT
2 client varchar(100) utf8_general_ci Non Aucun(e)
3 nom_document varchar(100) utf8_general_ci Non Aucun(e)
4 type_page varchar(100) utf8_general_ci Non Aucun(e)
5 nom_page varchar(100) utf8_general_ci Non Aucun(e)
6 valeur_contenu int(11) Non Aucun(e)
7 ordre int(11) Non Aucun(e)
8 table_1_id int(11)

然后在SQL中你会写

 SELECT * FROM table_1 LEFT JOIN table_2 ON table_1.idPrimaire = table_2.table_1_id

不必离开加入,它可以是您需要的任何加入。将这两个表放在一起后,您可以使用关联数组在php中获取它们,然后获取所需的列。

例如

$query = SELECT * FROM table_1 LEFT JOIN table_2 ON table_1.idPrimaire = table_2.table_1_id;
$result = ($connection, $query);
while($row = mysqli_fetch_assoc($result)){
   echo $row['nom_page'];
}

答案 1 :(得分:0)

如果你想根据相关列合并它们,你可以尝试“自然连接”,否则“full outer join”会在table1或table2中匹配时返回所有记录。

“内部联接”将为您提供表格上匹配的值。

通过这个,他们在这里解释了一切: https://www.w3schools.com/sql/sql_join_inner.asp