Нужна подсказка - MySQL
Формулировка задачи:
Привожу ссылку на песочницу sql http://sqlfiddle.com/#!9/2e93df/3
Подскажите пожалуйста, почему, если ввести 1й запрос, то возвращается одна строка, а если ввести 2й запрос, то возвращается 2е строки?
Есть небольшое недопонимание того, что там происходит при объединении таблиц.
Т.е. почему результат зависит от того, для какой таблицы делается условие agent_id=14?
По идее в 2х таблицах поле agent_id указывает на одни и те же данные
1й запрос
SELECT * FROM leads JOIN open_leads ON leads.id=open_leads.lead_id JOIN customers ON customers.id=leads.customer_id WHERE leads.agent_id=14
2й запрос
SELECT * FROM leads JOIN open_leads ON leads.id=open_leads.lead_id JOIN customers ON customers.id=leads.customer_id WHERE open_leads.agent_id=14
Решение задачи: «Нужна подсказка»
textual
Листинг программы
SELECT * FROM leads JOIN open_leads ON leads.id=open_leads.lead_id JOIN customers ON customers.id=leads.customer_id
Объяснение кода листинга программы
Ваш запрос SQL выполняет объединение (JOIN) трех таблиц: leads, open_leads и customers. Он выбирает все строки из этих трех таблиц и объединяет их в одну результирующую таблицу.
SELECT * FROM leads
- выбираются все столбцы из таблицы leads.JOIN open_leads ON leads.id=open_leads.lead_id
- выполняется объединение таблиц leads и open_leads по полю lead_id, которое совпадает с полем id в таблице leads.JOIN customers ON leads.customer_id=customers.id
- выполняется объединение таблиц leads и customers по полю customer_id, которое совпадает с полем id в таблице customers. Таким образом, запрос выбирает все строки из таблиц leads, open_leads и customers, которые имеют соответствующие значения в полях lead_id и customer_id.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д