我在这里有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