Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 2
Регистрация: 02.07.2012
Сообщений: 38
1

Выбор данных из нескольких таблиц

10.03.2016, 20:47. Показов 1931. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеются 2 таблицы:

SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE IF NOT EXISTS notes(                   /* 1 */
    id SERIAL PRIMARY KEY UNIQUE,                       /* номер записи */
    note CHAR(120) NOT NULL,                            /* комментарий к записи */
    regdate CHAR(21) NOT NULL                                                 /* дата */
);
 
CREATE TABLE IF NOT EXISTS filenames(                               /* 2 */
    id INTEGER REFERENCES notes(id) ON DELETE CASCADE,              /* номер записи */
    name CHAR(40) NOT NULL UNIQUE                                   /* имя файла */
);
во второй таблице существуют записи с одинаковыми id. Поэтому запрос типа select * from notes.*, filenames.name where notes.id = filenames.id; выдаст следующее

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Array
(
    [0] => Array
        (
            [id] => 20
            [regdate] => 2016-03-09 20:43:36  
            [note] => asdfsadfasdf                                                                                                            
            [name] => 451b161411612eac8d8b841c158b4e01.JPG    
        )
 
    [1] => Array
        (
            [id] => 20
            [regdate] => 2016-03-09 20:43:36  
            [note] => asdfsadfasdf                                                                                                            
            [name] => e69fd0de9b5284d23d04a59b2fa528ea.JPG    
        )
 
    [2] => Array
        (
            [id] => 21
            [regdate] => 2016-03-09 21:13:33  
            [note] => ASDFSDF                                                                                                                 
            [name] => 7d208b8ad0783843d17e3b5ddfdfc374.JPG    
        )
 
    [3] => Array
        (
            [id] => 21
            [regdate] => 2016-03-09 21:13:33  
            [note] => ASDFSDF                                                                                                                 
            [name] => dded161e2f9103dedb84acb77a07615d.JPG    
        )
 
)
Мне нужна вот такая структура:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Array
(
    [0] => Array
        (
            [id] => 20
            [regdate] => 2016-03-09 20:43:36  
            [note] => asdfsadfasdf                                                                                                            
            [photo] => Array
                (
                    [0] => 451b161411612eac8d8b841c158b4e01.JPG    
                    [1] => e69fd0de9b5284d23d04a59b2fa528ea.JPG    
                )
 
        )
 
    [1] => Array
        (
            [id] => 21
            [regdate] => 2016-03-09 21:13:33  
            [note] => ASDFSDF                                                                                                                 
            [photo] => Array
                (
                    [0] => 7d208b8ad0783843d17e3b5ddfdfc374.JPG    
                    [1] => dded161e2f9103dedb84acb77a07615d.JPG    
                )
 
        )
 
)
Средствами php я этого добился. А можно ли получить такую структуру сразу запросом к базе?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2016, 20:47
Ответы с готовыми решениями:

Выбор данных из нескольких таблиц
Есть 2 таблицы t1 и t2. Таблица t2 содержит внешний ключ t1_id на таблицу t1. Если записи в таблице...

Выбор данных из нескольких таблиц
Добрый вечер ! Как можно организовать выбор (Какими директивами SQL) из нескольких таблиц при...

Выборка данных из нескольких таблиц
Есть две таблицы. Одна хранит в себе список объектов(поля: object_id,object_name). Вторая -...

Выборка данных SQL Select из нескольких таблиц
loans - таблица кредитных договоров debtors - таблица заемщиков Задача сделать выборку телефонов...

2
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
11.03.2016, 14:31 2
Лучший ответ Сообщение было отмечено obrazz как решение

Решение

откуда photo появляется... в таблицах такого атрибута не наблюдается
Цитата Сообщение от obrazz Посмотреть сообщение
Поэтому запрос типа select * from notes.*, filenames.name where notes.id = filenames.id; выдаст следующее
Что у вас за синтаксис такой странный?? откуда под FROM звездочки и точки взялись??

Попробуйте вот такой запрос, не знаю что по этому поводу сделает PHP, но может что-то похожее
SQL
1
2
SELECT n.id, n.regdate, n.note, array_agg(name) FROM notes n, filenames f WHERE n.id = f.id
GROUP BY n.id, n.regdate, n.note;
1
2 / 2 / 2
Регистрация: 02.07.2012
Сообщений: 38
11.03.2016, 16:02  [ТС] 3
Было уже поздно, просто опечатался.
Правильно было вот так: select notes.*, filenames.name from notes, filnames where notes.id = filenames.id;

Добавлено через 5 минут
Цитата Сообщение от grgdvo Посмотреть сообщение
Попробуйте вот такой запрос, не знаю что по этому поводу сделает PHP, но может что-то похожее
SQL
Выделить код
1
2
SELECT n.id, n.regdate, n.note, array_agg(name) FROM notes n, filenames f WHERE n.id = f.id
GROUP BY n.id, n.regdate, n.note;
Да спасибо это помогло.
0
11.03.2016, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2016, 16:02
Помогаю со студенческими работами здесь

Выбор данных из нескольких таблиц
Добрый день есть две таблицы 1-я Называется "Игры" с полями id_game, kod_team1, kod_team2,...

Выбор данных из нескольких таблиц
Ребят, выручайте, 2й день не могу понять, что не так. Есть несколько связанных таблиц, надо вывести...

Сложный выбор данных из нескольких таблиц
помогите пожалуйста решить такую проблему. Имеются 3 таблицы: t1 ( с полями: название, дата,...

Выбор данных из нескольких таблиц: Неоднозначное имя столбца "Код груза"
Помогите с ошибкой, я делаю выбор данных из нескольких таблиц. SELECT , , , , , , , FROM ., .,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru