Задавайте вопросы, мы ответим
Вы не зашли.
только начинаю изучать SQL, поэтому плиз, сильно не пинайте))
Есть две таблицы:
Таблица1
id | name
1 | Иван
2 | Андрей
3 | Леша
Таблица2
id | dopinfo | dopname
1 | Иванов | dop1
1 | 1981 | dop2
1 | Качалка | dop3
2 | mail | dop1
2 | Рождество | dop2
3 | Пример1 | dop1
3 | Пример2 | dop2
Пишу запрос:
SELECT
Таб1.name, Таб2.dopinfo
FROM
Таблица1 Таб1, Таблица2 Таб2
WHERE
Таб1.id = Таб2.id
получается массив
[1] = name = Иван, dopname = Иванов
[2] = name = Иван, dopname = 1981
и т.д.
А как получить массив такого вида?
[1] = name = Иван, dop1 = Иванов, dop2 = 1981, dop3 = Качалка
[2] = name = Андрей, dop1 =mail, dop2 = Рождество
Неактивен
Что-нибудь такое:
SELECT GROUP_CONCAT(CONCAT_WS('=', dopname, dopinfo)) FROM `Таблица2` GROUP BY id.
Неактивен
спасибо, GROUP_CONCAT - хорошая штука)) не знал про нее. вот токо она бы еще на массив разбивала))
пробовал сделал так:
SELECT
Таб1.name, GROUP_CONCAT('[', Таб2.dopname, ']' ,Таб2.dopinfo)
FROM
Таблица1 Таб1, Таблица2 Таб2
GROUP BY
Таб2.id
если выводить на PHP через mysql_fetch_assoc, то последние значение массива это строка, и не разбита на массив, т.е. не получается обратиться в цикле к massiv[dop1] и получить его значение, а massiv[name] выводит отлично из первой таблицы((((
Неактивен
А условие объединения таблиц где?
Неактивен
ой, забыл написать
WHERE
Таб1.id = Таб2.id
но сути это не меняет... придется использовать функцию которая будет разбивать полученную переменную на массив
Неактивен
Да, прийдется Если Вы не хотите читать данные построчно — прийдется
разбивать одну строку в приложении. Это как с пирогом — можно заказать
нарезанный, и есть по кусочкам, или заказать целиком, но тогда резать
самостоятельно
Неактивен