Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Alexxosipov
3 / 3 / 5
Регистрация: 04.12.2016
Сообщений: 68
#1

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

28.01.2017, 18:53. Просмотров 187. Ответов 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 запрос?
http://www.cyberforum.ru/php-database/thread1791268.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2017, 18:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запрос с нескольким таблицам БД (PHP БД):

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

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

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

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

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

3
Виталюска
463 / 455 / 225
Регистрация: 26.09.2010
Сообщений: 2,333
28.01.2017, 19:19 #2
Цитата Сообщение от 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
Alexxosipov
3 / 3 / 5
Регистрация: 04.12.2016
Сообщений: 68
29.01.2017, 00:00  [ТС] #3
Сделал следующий запрос:
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
Виталюска
463 / 455 / 225
Регистрация: 26.09.2010
Сообщений: 2,333
29.01.2017, 20:12 #4
Цитата Сообщение от 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2017, 20:12
Привет! Вот еще темы с решениями:

Поиск по нескольким таблицам с разной структурой
Требуется осуществить поиск по нескольким таблицам с разной структурой....

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

Поиск по нескольким таблицам с разной (не одинаковой структурой))
Подскажите как сделать поиск по нескольким таблицам с разной структурой но по...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru