我正在尝试做一些非常基本但不可能绕过这个问题的事情。 我有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中调用一些内容
答案 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