我有多个表,我想访问特定表中的字段。这是表schemas

php - PHP PDO多表联接-LMLPHP

每个tbl_acct都有一个tbl_unittbl_unit具有许多tbl_groups,而tbl_groupcontact由联系人和相关组组成。每次登录时,我都将会话设置为$_SESSION['unitid'] = $row['unitid'];

我想做的是访问tbl_contacts中的字段。现在我的代码在这里:

$data = $conn->prepare("SELECT * FROM tbl_groups LEFT JOIN tbl_groupcontact ON tbl_groups.id=tbl_groupcontact.group_id WHERE tbl_groups.unitid = ?");
$data->execute(array($_SESSION['unitid']));
foreach ($data as $row) {
    echo $row['fname'] . " " . $row['lname']. "<br />";
}


如您所见,我可以在代码中关联tbl_groupstbl_groupcontact,但是,我无法在tbl_contacts中获取字段。我在这里想念什么吗?任何帮助将非常感激。

最佳答案

您需要加入另一个表。

SELECT tbl_contacts.*
FROM tbl_groups
INNER JOIN tbl_groupcontact ON tbl_groupcontact.group_id = tbl_groups.id
INNER JOIN tbl_contacts ON tbl_contacts.id = tbl_groupcontact.contact_id
WHERE tbl_groups.unitid = ?


不需要(慢速)LEFT JOIN btw-当您想要从(左侧)表中检索记录时,即使在已连接的(右侧)表中找不到匹配项,也可以使用它(在此列中将用空值填充)案件)。

关于php - PHP PDO多表联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32961691/

10-11 03:10