Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 0
Регистрация: 04.12.2016
Сообщений: 68

Запрос с нескольким таблицам БД

28.01.2017, 18:53. Показов 1595. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!)
Помогите, пожалуйста, разобраться с запросом к бд.
Есть таблица jobs:
id, u_id, contract_id

Есть таблица users:
id, firstname, lastname

Есть таблица workplaces, где есть данные:
id, job_id, u_id, contract_id

Чтобы было понятно, что есть что:
В таблице jobs поля u_id и contract_id связаны с таблицей users, с полем id.
В таблице workplaces поле job_id связано с jobs.id, а поля u_id и contract_id связаны с таблицей users.

Логика запроса такая:
Выбрать данные из таблицы jobs, где id = workplaces.job_id
Выбрать данные из таблицы users, где id = workplaces.u_id, workplaces.contract_id.

Т.е. если в 1 запросе обращаться лишь в 1 таблицу, то получится что-то на подобие:
MySQL
1
2
SELECT * FROM users WHERE id = workplaces.u_id, workplaces.contract_id
SELECT * FROM jobs WHERE id = workplaces.job_id
Подскажите, пожалуйста, как это все составить в 1 запрос?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2017, 18:53
Ответы с готовыми решениями:

Запрос поиска по нескольким таблицам
Здравствуйте форумчане, не могу сообразить как организовать поиск по сайту не только по новостям, но и по комментариям тоже. Значит есть...

Запрос к нескольким таблицам в базе
Мне так и не ответили может это возможно? У меня запрос к разным записям сделать получилось. а как из записи doska_photos выбрать только...

Как сделать запрос к нескольким таблицам?
Доброго времени суток. У меня возник такой вопрос как можно сделать запрос сразу к нескольким таблицам. вот так я делаю к одной $insert =...

3
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
28.01.2017, 19:19
Цитата Сообщение от Alexxosipov Посмотреть сообщение
Подскажите, пожалуйста, как это все составить в 1 запрос?
использовать JOIN

SQL
1
2
3
4
SELECT * FROM users
JOIN jobs ON jobs.u_id = users.id
JOIN workplaces ON workplaces.job_id = jobs.id
WHERE users.id = 'ид юзера'
1
3 / 3 / 0
Регистрация: 04.12.2016
Сообщений: 68
29.01.2017, 00:00  [ТС]
Сделал следующий запрос:
MySQL
1
2
3
4
SELECT * FROM workplaces
JOIN users ON users.id = workplaces.u_id
JOIN jobs ON jobs.id = workplaces.job_id
WHERE workplaces.id = $id
Выдает все то, что нужно, но есть одна проблема. Мне нужно из таблицы users получать не только данные о пользователе u_id, но еще и о пользователе contract_id.
При добавлении в запрос 'AND' ничего не получается, но дело за малым: как синтаксически правильно сделать запрос, который по содержанию будет похож на:
MySQL
1
2
3
4
SELECT * FROM workplaces
JOIN users ON users.id = workplaces.u_id AND users.id = workplaces.contract_id
JOIN jobs ON jobs.id = workplaces.job_id
WHERE workplaces.id = 4
Уже много чего перепробовал, ничего не работает
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.01.2017, 20:12
Цитата Сообщение от Alexxosipov Посмотреть сообщение
JOIN users ON users.id = workplaces.u_id AND users.id = workplaces.contract_id
по этой строке выходит что:
сделать выборку из таблиц workplaces и users если в таблице users поле id = полю u_id в таблице workplaces и одновременно в таблице users поле id = полю contract_id в таблице workplaces
т.ее в таблицах должна быть вот такая запись

users
id firstname lastname
1 name name
2 name2 name2

workplaces
id, job_id, u_id, contract_id
1 1 2 2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2017, 20:12
Помогаю со студенческими работами здесь

Поиск по нескольким таблицам
Есть две таблицы, нужно реализовать поиск по ним. Поиск по дной работает, а надо сделать по двум Пробовала так<?php require_once...

Поиск по нескольким таблицам
Доброе время суток! Подскажите пожалуйста, каким образом можно осуществить поиск по нескольким таблицам? имеется 3 таблицы $search =...

Поиск по нескольким таблицам с разной структурой
Требуется осуществить поиск по нескольким таблицам с разной структурой. Например, есть 3 таблицы: table1: id, name, adress, telefon ...

Как использовать INSERT INTO к нескольким таблицам?
Здравствуйте, столкнулся с такой проблемой. У меня есть три таблицы, также у меня есть форма html с input и мне нужно через форму...

Поиск по нескольким таблицам на PHP + MySQL
Здравствуйте! Такой вопрос, как сделать строку поиска на сайте для нескольких таблиц, которые не похожи по структуре. На выходе должно...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru