我遇到了MySQL JOIN问题,想知道是否有人可以帮我解决问题。真正快速浏览我加入的表格。SQL遇到问题JOIN
User
表列(只是在这种情况下,重要的列):
userId | active | role | username | addressId
Address
表列(只是在这种情况下,重要的列):
addressId | firstName | lastName
ManagerRepRelationship
表
repId | managerId
下面是这些表之间的关系:
当创建一个新的用户,他们会被分配一个密钥(用户id)和他们的地址信息得到它在地址自己的行用钥匙(addressId)。该addressId键获取用户表中的用户行的存储。
另外,当创建用户时,他们被分配两个角色之一:'经理'或'代表'。如果他们是一名代表,他们必须被分配一名经理(显然,在任何代表可以之前需要创建一些经理)。当代表分配给经理并创建时,代表
userID
存储在ManagerRepRelationship
的repId
列中,同时为该代表选择的经理userId
存储在managerId
列下的同一行中。
这是我遇到的麻烦。在编辑代表时,我想回显顶部分配给该代表的经理的姓名。在编辑页面上,我将编辑后的代表userId
传递到网址中,因此可以通过$_GET["userID']
获得。
我似乎无法编写正确的JOIN语句来取回管理员的名字和姓氏,而不是正在编辑的代表。这是我到目前为止,但我得到空。我希望我解释得很好。
<?php
$user_id = $_GET["userId"]; // the rep getting edited userId
// grab all the reps address info and user info
$user_result = mysqli_query($connection,
"SELECT Users.*, Address.*
FROM Users
JOIN Address
ON Users.addressId=Address.addressId
WHERE Users.userId=" . $user_id
);
$user_set = mysqli_fetch_array($user_result);
// Trying to get the first and last name of the manager
// That is assigned to this rep
$result = mysqli_query($connection,
"SELECT A.firstName, A.lastName
FROM Address A
JOIN Users U
ON A.addressId=U.addressId
JOIN ManagerRepRelationship M
ON M.repId=U.userId AND M.managerID=U.userId
WHERE U.role='manager' AND M.repId=" . $user_id
);
$managerName = mysqli_fetch_array($result);
?>
抱歉。 1秒。我需要编辑这个。 –
这是一个整数 –
检查查询上的错误http://php.net/manual/en/mysqli.error.php和可能的错误报告http://php.net/manual/en/function.error-reporting .php –