繁体   English   中英

内部联接导致不同的数组

[英]Inner join results in different arrays

我正在使用内部连接语句从表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;

}

从问题中不清楚您到底想做什么,但是您可以像这样从两个表中提取特定的列:

SELECT Venues.*, Users.username FROM Venues INNER JOIN Users ON...

这将允许您仅从“用户”中拉出“用户名”列。

联接总是会给您留下一系列的行,如果您需要其他东西,则一旦在PHP中获得数据,您可能就不得不操纵数据,除非我误解了您的问题。

这样的事情将使用户获得所有场所,用户名作为数组键:

$venuesByUser = array();
foreach ($query->result() as $row) {
    $venuesByUser[$row->username][] = $row;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM