您好我正在尝试使用外键从三个表中选择所有数据。我尝试了类似的东西
$getId = $_GET['id'];
$getAll="SELECT * FROM employee_info ,over_view, employee_attendance
WHERE employee_info.id=$getId AND id=over_view.id AND id=employee_info.id";
$info_data = $dbcon->query($getAll);
$store = $info_data->fetch(PDO::FETCH_ASSOC);
echo $store['first_name'];
but it shows that error作为一个新手我发现很难解决。 现在我如何从三个表over_view和employee_attendance表中选择一个查询的所有数据id是employee_info的外键。
答案 0 :(得分:1)
我认为您需要在WHERE子句中限定列名,如下所示
SELECT *
FROM employee_info
,over_view
,employee_attendance
WHERE employee_info.id = $getId
AND employee_info.id = over_view.id
AND employee_attendance.id = employee_info.id
答案 1 :(得分:1)
确定。首先:您正在使用隐式连接结构进行查询,而您应该使用显式连接结构。 其次,你得到的错误是因为你在其中一个表中有多个列id,而MySql需要知道要考虑什么。使用显式连接语法更容易看到:
SELECT *
FROM employee_info
JOIN over_view ON employee_info.id=over_view.id
JOIN employee_attendance ON employee_info.id=employee_attendance.id
WHERE employee_info.id = $getId
使用显式连接,您可以使用表格之间可以创建的所有类型连接的所有功能:左,右,内...一个易于阅读的连接指南是here