加入两张表不起作用

时间:2018-04-09 19:49:08

标签: php mysql

我有一个SQL语句,见下文。我不知道怎么能放进另一张桌子。我尝试了一些东西,但它们都显示为错误。 我需要的是显示两个表中的项目。它们是两个单独的表,唯一的共同点是两者中的日期。

有人可以帮助我吗?

$value = $_GET['id']; 
             $dbQuery = $conn->prepare("SELECT * FROM Appointment INNER JOIN Results WHERE Date=:value");
             $dbParams = array(':value'=>$value);
             $dbQuery->execute($dbParams);

3 个答案:

答案 0 :(得分:2)

您的代码缺少您的加入的ON运算符。另一个问题是你没有指定在你的where条件中使用哪个 Date。这在代码中没有多大区别,但下面的代码段可以解决您的联接问题,以及有关联接的更多信息follow this link

$value = $_GET['id']; 
$dbQuery = $conn->prepare("SELECT * FROM Appointment INNER JOIN Results ON Appointment.Date = Results.Date WHERE Results.Date=':value'");
$dbParams = array(':value'=>$value);
$dbQuery->execute($dbParams);

答案 1 :(得分:1)

如果查询中的多个表具有一个或多个共同的字段名,则必须使用表的名称(或表中使用的别名,如果有)来限定这些字段名。

此外,您的查询缺少连接条件,因此如果指定了Appointments.Date(单独),您将获得该日期的每个约会与results表中的每一行配对。

答案 2 :(得分:1)

您需要使用ON来传达两个表

SELECT * FROM Appointment as a
INNER JOIN Results as r
ON a.Date = r.Date
WHERE r.Date=:value

https://www.w3schools.com/sql/sql_join_inner.asp