【发布时间】:2020-03-15 22:39:48
【问题描述】:
早上好,
我应该交叉两个表,使公司的名称出现在一个表中。
例子:
用户表:
ID - 用户名 - WHATICANSEE
1 |用户 | 1,2,3
公司表:
ID - NAMECOMPANY
1 |萝卜
2 |苹果
3 |马铃薯
“Whaticansee”包含类似于“1,2,3”的值,相当于“ID”公司表。 这是我的代码:
function TabDipendenti(){
require 'db.php';
$result = $mysqli->query("SELECT * FROM users");
//CODE CREATE <TABLE>
while($row = mysqli_fetch_array($result)){
echo "<td><a href=/az.php?id=" . $row['WHATICANSEE'] . ">". $row['WHATICANSEE'] ."</a></td>";
}
//CODE </TABLE>
}
所以我需要从“WHATICANSEE”的选择中输出“NAMECOMPANY”(具有多 ID 的值)。
现在的输出是:
1 - User - 1,2,3
但正确的流程是:
1 - User - Carrots,Apple,Potato
感谢您的帮助。
【问题讨论】:
-
您应该创建一个关联表 (
EMPLOYEE?),其中包含两个字段:USER_ID、COMPANY_ID。那你只需要查询:SELECT u.USERNAME, c.NAMECOMPANY FROM USER u INNER JOIN EMPLOYEE e ON e.USER_ID = u.ID INNER JOIN COMPANY ON e.COMPANY_ID = c.ID你能设计数据库表吗? -
所以不改变 ID 名称表是正确的:
SELECT * FROM USER AS u JOIN COMPANY AS c WHERE c.id=u.id是正确的吗?但我不明白如何为回显名称而不是 ID 交互变量“whaticansee”和“namecompany” -
我不确定。我猜每个 ID 只是表格的“行号”。对我来说,这是一个 SQL 问题。请了解 SQL 连接的工作原理 => w3schools.com/sql/sql_join.asp 连接外键不是一个好习惯。