我有多个表,我想访问特定表中的字段。以下是表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
中的字段。我在这里错过了什么吗?任何帮助将不胜感激。
答案 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 - 当你想从(左侧)表中检索记录时使用它,即使在连接(右侧)表中找不到匹配(它的列将是在这种情况下填充空值。)