是否可以在1个数据库中一次选择3个表?
Table 1: employee --> employee_id --> first_name --> last_name --> middle_name --> birthdate --> address --> gender --> image --> salary Table 2: logs --> log_id --> full_name --> employee_id --> date --> time --> status Table 2: logout --> log_id --> full_name --> employee_id --> date --> time --> status
我想获得employee table的值,其中$ id为selected。然后$ id也获取log.time,log.date,logout.time和logout.date的值。
我已经尝试使用UNION但没有任何反应。
答案 0 :(得分:5)
类似的东西:
SELECT * FROM `employee` as `e` ( LEFT JOIN `logs` ON `e`.`employee_id` = `logs`.`employee_id`) LEFT JOIN `logout` ON `e`.`employee_id` = `logout`.`employee_id` WHERE `e`.`employee_id` = $id
您希望使用相关列(员工ID)将表连接在一起。此sql语句首先将employee连接到日志,然后将该结果连接到logout。
答案 1 :(得分:3)
由您决定将它放在您的应用中,但查询看起来像这样。 Dan的查询不会完全返回您所说的内容。
SELECT e.*, l.time, l.date, lo.time, lo.date
FROM employee e
LEFT JOIN logs l
ON l.employee_id = e.employee_id
LEFT JOIN logout lo
ON lo.employee_id = e.employee_id
WHERE e.employee_id = {your id here}
答案 2 :(得分:1)
约旦,
要扩展Entendu给出的查询(我无法回复),您可以使用别名:
SELECT e.*, l.time AS l_time, l.date AS l_date, lo.time AS lo_time, lo.date AS lo_date
来自员工e LEFT JOIN日志l ON l.employee_id = e.employee_id LEFT JOIN logout lo ON lo.employee_id = e.employee_id WHERE e.employee_id = {your id here}
这样你可以调用$ row ['l_time']来获取l.time
的值