PHP PDO多表连接

时间:2015-10-06 04:22:39

标签: php mysql pdo

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

enter image description here

每个tbl_acct都有一个tbl_unittbl_unit有许多tbl_groupstbl_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中的字段。我在这里错过了什么吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你需要加入另一张桌子。

window.y = 0

不需要(慢)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 = ? btw - 当你想从(左侧)表中检索记录时使用它,即使在连接(右侧)表中找不到匹配(它的列将是在这种情况下填充空值。)