Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Leningradeс
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435

Сложный запрос SELECT с объеденением трех таблиц

03.05.2015, 00:03. Показов 826. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

В MySql есть три таблицы:

table_users (user_id, user_name, user_family, user_phone, user_cab)
table_device (device_id, device_type, device_firm, device_model, device_serial, device_cab)
table_bids (bid_id, bid_declarer_user_id, bid_performer_user_id, bid_text, bid_time, bid_data, bid_status)

Нужно сделать запрос который содержал бы:

Заявка (bid_id)
Объект (device_type, device_firm, device_model, device_serial, device_cab)
Владелец (user_name, user_family, user_phone, user_cab) where user_id=bid_declarer_user_id
Проблема (bid_text)
Исполнитель (user_name, user_family, user_phone, user_cab) where user_id=bid_performer_user_id
Время создания (bid_time, bid_data)
Статус (bid_status)

Всячески пробовал, но не хватает опыта... Могу выводить только по частям. В принципе оно и должно наверно быть по частям... А потом как то объединить все в один массив...

В общем мне надо получить стандартный $result для вывода таблицы в html.

Добавлено через 12 минут
А таблица должна содержать главное все заявки (table_bids) созданные текущим пользователем $userdata['user_id']
В $userdata[] уже содержатся все поля текущего авторизированого пользователя.

Добавлено через 2 часа 52 минуты
Вот так вот. Получилось
PHP/HTML
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?
print "<h1>Ваши заявки</h1>";
$link = mysqli_connect("localhost", "??????????", "???????????", "itservice");
$query = "select * from table_bids where bid_declarer_user_id='".$userdata['user_id']."'";
$bids = mysqli_query($link, $query);
 
print "<table border = '1' cellspacing='0'>\n";
//получить названия полей
print "<tr>\n";
while ($field = mysqli_fetch_field($bids))
{
    print "<th>$field->name</th>\n";
}
print "</tr>\n\n";
while ($row = mysqli_fetch_row($bids))
{
    print "<tr>\n";
    foreach ($row as $col=>$val)
    {
        //print "$col";
        if ($col == "1")
        {
            $query = "select concat(user_name, ' ', user_family) as Владелец from table_users where user_id='".$val."'";
            $declarer = mysqli_query($link, $query);
            $row = mysqli_fetch_row($declarer);
            foreach ($row as $col=>$val) print "<td>$val</td>\n";
            mysqli_free_result($declarer);
        }
        elseif ($col == "2")
        {
            if ($val == "0") print "<td>Отсутствует</td>\n";
            else
            {
                $query = "select concat(user_name, ' ', user_family) as Исполнитель from table_users where user_id='".$val."'";
                $performer = mysqli_query($link, $query);
                $row = mysqli_fetch_row($performer);
                foreach ($row as $col=>$val) print "<td>$val</td>\n";
                mysqli_free_result($performer);
            }
        }
        elseif ($col == "3")
        {
            $query = "select concat(device_type, ' ', device_firm, ' ', device_model) as Объект from table_devices where device_id='".$val."'";
            $device = mysqli_query($link, $query);
            $row = mysqli_fetch_row($device);
            foreach ($row as $col=>$val) print "<td>$val</td>\n";
            mysqli_free_result($device);
        }
        else print "<td>$val</td>\n";
    }
}
print "</tr>\n\n";
print "</table>\n";
// очищаем результирующий набор
mysqli_free_result($bids);
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2015, 00:03
Ответы с готовыми решениями:

Как сделать сложный запрос MySQL из трех таблиц
В базе данных есть четыре таблицы: table_1, table_2, table_3 из которых нужно выбрать данные строки data_1 из table_1, data_2 из table_2 и...

Сложный Select из 2 таблиц
Здраствуйте. Подскажите как сделать sql запрос: есть 2 таблицы: table1 структура test product status test1 prod1 ...

Сложный Select-запрос
select Товар.ЕдиницаИзм, SUM(Заказ.Количество) as , Товар.Цена * Заказ.Количество AS Стоимость from Товар inner join Заказ on...

1
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
03.05.2015, 12:11
Leningradeс, Почитай про
SQL
1
UNION
SQL
1
LEFT JOIN
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2015, 12:11
Помогаю со студенческими работами здесь

Сложный select запрос
Доброго времени суток. Вопрос такой. Схема данных БД в аксесе(рисунок. 1). первая форма будущей программы выглядит так (рисунок 2). Выборка...

запрос сложный select
нужно сделать выборку из таблицы с отбором по ранному кол-ву условий (завият от положения флажков в форме) (см файл) SELECT...

Сложный запрос с использванием select
Привет уважаемые прогеры! Хочу сделать поиска ноутбука по заданным параметрам (пареметры выбираются через select). Но при этом...

Сложный SQL запрос SELECT
сложный SQL запрос SELECT создать запрос, который будет возвращать : имя, фамилию, начальники фамилию, отдел, к которому они...

Сложный запрос из 4-х таблиц
Есть 4 таблицы: catalog(товары), subgroup(подгруппа товаров) - старые товары на сайте(прайсы). 2 другие таблицы - catalog2(новые...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru