Это дополнительный вопрос к моему предыдущему .
Ситуация:
Table 1:
+--------------------+--------------------+
| v_id | v_name |
+--------------------+--------------------+
| 1 | v_name1 |
+--------------------+--------------------+
| etc...
Table 2:
+--------------------+--------------------+
| a_id | a_name |
+--------------------+--------------------+
| 1 | a_name1 |
+--------------------+--------------------+
| etc...
Table 3:
+--------------------+--------------------+
| v_id | a_id |
+--------------------+--------------------+
| 1 | 1 |
+--------------------+--------------------+
| 1 | 2 |
+--------------------+--------------------+
| 1 | 3 |
+--------------------+--------------------+
Я хочу объединить две таблицы:
SELECT t1.*, t2.a_name
FROM `table1` t1
LEFT JOIN `table_3` t3 ON t3.v_id = t1.v_id
LEFT JOIN `table_2` t2 ON t2.a_id = t3.a_id
WHERE t1.id = 1;
Результатом этого запроса будет 3 строки для заданных таблиц, каждая строка с одинаковыми значениями из Table 1
, просто разные a_name
из Table 3
.
Теперь возможномне сделать a_name
массив (из 3 ячеек в данном случае)?Я думаю, что это невозможно.Если это не так, как бы мне построить запрос так, чтобы он возвращал только одну строку с результатами a_name
, соединенными с заданной «клейкой» строкой?1020 * Если бы я получил результат в PHP, я бы ожидал что-то вроде:
$result = array(
'v_id' => 1,
'a_name' => array('a_name1', 'a_name2', 'a_name3')
);
или
$result = array(
'v_id' => 1,
'a_name' =>'a_name1, a_name2, a_name3'), # assuming I used ', ' as the glue string
);