У меня 3 таблицы: пользователь, компания и сделка.Оптимизация SQL-запросов для базы данных MySql
Один пользователь может владеть несколькими компаниями. Делаются сделки между двумя компаниями. Мне нужен список сделок, в которых участвовала моя компания.
Сделки должны содержать следующие поля: partner_company_id, my_company_id, partner_photo, partner_name, deal_about.
Код языка: PHP. База данных: Mysql.
1.List of my company Я могу получить ID пользователя.
user_id = 22;
companyList = query('SELECT company_id FROM company WHERE user_id = ?', user_id);
2. Тогда я получить список сделок, где my_company_id является company_first_id
list1 = query('SELECT u.name AS partner_name, u.photo AS partner_photo, d.first_company_id AS
my_company_id , d.second_company_id AS partner_company_id,d.about AS deal_about FROM deal AS d
INNER JOIN company AS c ON c.company_id = d.second_company_id
INNER JOIN user AS u ON u.user_ud = c.user_id
WHERE d.company_first_id IN (?)', companyList);
3. Тогда я получить список сделок, где my_company_id является company_second_id
list2 = query('SELECT u.name AS partner_name, u.photo AS partner_photo, d.first_company_id AS
partner_company_id , d.second_company_id AS my_company_id,d.about AS deal_about FROM deal AS d
INNER JOIN company AS c ON c.company_id = d.first_company_id
INNER JOIN user AS u ON u.user_ud = c.user_id
WHERE d.company_second_id IN (?)', companyList);
4. затем i marge to array и установить лимитный список
list = array_marge(list1,list2);
result = array_slice (list ,0 , 10);
HELP пожалуйста оптимизировать эти запросы.
СПАСИБО.
DATABASE СХЕМЫ
user | company | deal |
--------------------------------------------------
user_d | company_id | deal_id
photo | user_id |first_company_id
name | about |second_company_id
| |description
Я думаю, что это довольно грубо попросить кого-то, чтобы сделать всю работу за вас. Хороший вопрос: у меня есть идея оптимизировать, будет ли эта работа или вы знаете некоторые улучшения? Или: есть ли хорошая книга по оптимизации запросов? – stupidstudent
Мы не здесь, чтобы выполнить вашу работу. У вас есть основания подозревать, что эти запросы могут быть оптимизированы? Любые идеи о том, с чего начать? – DaaaahWhoosh