我在這裏有3張桌子。用戶表,員工表和報表。如何在SQL中的不同表中選擇多個值?
用戶表有4列:
ID, Username, Password, Role
1 test test Admin
2 branch branch Manager
3 hello hello Manager
Employee表中有4列:
ID, Firstname, Lastname, Supervisor_ID
1 test test
2 branch branch
3 hello hello
4 agent1 agent1 2
5 agent2 agent2 2
6 agent3 agent3 3
7 agent4 agent4 3
報告表有4列:
Report_ID, ID, Branch_ID, Client_ID
1 1 1 1
2 2 1 1
3 3 2 3
4 4 1 2
5 5 3 4
6 6 3 2
7 7 2 5
現在,我想所需的輸出如果登錄的用戶是經理,那麼他可以看到的報告只是他的下的報告和他監督下的代理人。我在這裏有一個代碼只從表中選擇兩個值。
$user = $_SESSION['username'];
$statement="SELECT * FROM user WHERE Username='".$user."'";
$result1 = mysqlparser($statement, $db);
$id = $result1[0]['Employee_ID'];
$statement="SELECT * FROM employee WHERE Supervisor_ID='".$id."'";
$result2 = mysqlparser($statement, $db);
$id1 = $result2[0]['Employee_ID'];
$statement = "SELECT * FROM report WHERE DATE(`Report_Timestamp`) = CURDATE() AND Employee_ID='".$id."' OR Employee_ID='".$id1."'";
$result = mysqlparser($statement, $db);
例如: 我登錄其中有2。現在我想看到從我的ID我的監督下,這是AGENT1和agent2報告和其他員工的ID分支。
你可能想看看'JOIN's HTTP://www.sitepoint。 com/understanding-sql-joins-mysql-database/ – hsan 2014-08-28 08:37:14