我正在使用内部联接语句从表Venues和Users中检索数据。但是,我希望有一个看起来像这样的数组
$resultsFromVenueTableArray = array(
$relevantVenueKey => $relevantVenueValue,
$resultsFromUserTable => $arrayOfValuesFromUserTable
);
而不是只有一个满是所有检索到的数据的数组看起来像这样:
$resultsFromQuery = array(
$venueKey,
$userKey,
$venueKey...
)
我怎么能实现这个目标?
这是我的代码;
$query = $this->db->query("SELECT * FROM Venues INNER JOIN Users ON Users.id = $userID", array($userID));
$venues = array();
foreach ($query->result() as $row) {
$row->username = $username;
$venues[] = $row;
}
答案 0 :(得分:1)
从问题中确切地知道您想要做什么,但是您可以从这两个表中提取特定列,如下所示:
SELECT Venues.*, Users.username FROM Venues INNER JOIN Users ON...
允许您从“用户”中仅提取“用户名”列。
连接总是会给你留下一系列行,如果你需要别的东西,你可能不得不在PHP中使用它来操纵数据,除非我误解了你的问题。
这样的东西会让用户获得所有场地,用户名作为数组键:
$venuesByUser = array();
foreach ($query->result() as $row) {
$venuesByUser[$row->username][] = $row;
}