Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сложная выборка из mysql
Форумы портала PHP.SU » » Работа с СУБД » Сложная выборка из mysql

Страниц (1): [1]
 

1. potap1986 - 19 Октября, 2012 - 02:17:09 - перейти к сообщению
Есть 2 таблицы

таблица 1

| id | name |
| 1 | имя 1 |
| 2 | имя 2 |
| 3 | имя 3 |
| 4 | имя 4 |

таблица 2

| id | id_tab1 | name |
| 1 | 1 | имя 1 |
| 2 | 2 | имя 2 |
| 3 | 2 | имя 3 |
| 4 | 3 | имя 4 |

Как с помощью одной выборки получить массив
Array
(
[id] => 1
[id_tab1] => Array
(
[0] => 1
)
)
Array
(
[id] => 2
[id_tab1] => Array
(
[0] => 2
[1] => 3
)
)
Array
(
[id] => 3
[id_tab1] => Array
(
[0] => 4
)
)


Подскажите кто знает.
2. Мелкий - 19 Октября, 2012 - 09:26:22 - перейти к сообщению
MySQL не может вернуть нативно массив, поэтому одной только выборкой дело не ограничится.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT t1.id, group_concat(t2.id_tab1) AS t2ids FROM t2 JOIN t1 ON t1.id=t2.id_tab1 GROUP BY t1.id

И explode по t2ids.
3. potap1986 - 19 Октября, 2012 - 14:43:02 - перейти к сообщению
Cпасибо. То что надо.

 

Powered by ExBB FM 1.0 RC1