我遇到了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 –