Результаты внутреннего объединения в разных массивах - PullRequest
0 голосов
/ 14 декабря 2011

Я использую оператор внутреннего соединения для извлечения данных из таблиц Venues и Users.Тем не менее, я хотел бы, чтобы массив выглядел так

$resultsFromVenueTableArray = array(

    $relevantVenueKey => $relevantVenueValue,
    $resultsFromUserTable => $arrayOfValuesFromUserTable

);

, а не только в одном массиве, полном всех извлеченных данных, выглядящем примерно так:добиться этого?

Вот мой код;

$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;

}

1 Ответ

1 голос
/ 14 декабря 2011

Непонятно из вопроса, что именно вы хотели бы сделать, но вы можете извлечь определенные столбцы из обеих таблиц следующим образом:

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

, который позволит вам извлечь только столбец «username» из «Users».

Объединение всегда оставляет вас с массивом строк, если вам нужно что-то еще, вам, вероятно, придется манипулировать данными, как только вы получите их в PHP, если я не понял вашего вопроса.

Примерно так получилось бы, что пользователь получил бы все места с именем пользователя в качестве ключа массива:

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