我有多个表,我想访问特定表中的字段。这是表schemas
:
每个tbl_acct
都有一个tbl_unit
。 tbl_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_groups
和tbl_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/