Выборка с 3 таблиц, подскажите запрос

D
На сайте с 20.09.2010
Offline
158
104

Уменя есть такой запрос

SELECT f.* FROM firms f INNER JOIN firms_category fc ON f.id = fc.firm_id

подскажите как сюда добавить объединение по полю firm_id из таблици firm_media?

Тоесть чтобы было наподобие такого:

SELECT f.* FROM firms f INNER JOIN firms_category fc ON f.id = fc.firm_id  and firm_media .firm_id = f.id

D7
На сайте с 14.04.2020
Offline
15
#1
Ещё один inner join или left join,
Точно также как ты добавил 2 таблицу
Надежный хостинг сайтов, 10 дней бесплатного тестирования. (https://netangels.ru/?p_ref=u77801) Облачные VDS от 160 р
D
На сайте с 20.09.2010
Offline
158
#2

SELECT f.* FROM firms f INNER JOIN firms_category fc ON f.id = fc.firm_id and fc.url='muzykanty' LEFT join firms_media f_media on f_media.url = 'kiev' order by f.id desc


выдает около 10 млн записей(хотя в таблице firms всего 10тыс) где одни и те же записи по 100 раз дублируются

S
На сайте с 13.10.2014
Offline
156
#3

есть большое подозрение. что нужно использовать другой тип джойна

https://i.imgur.com/hhRDO4d.png

W1
На сайте с 22.01.2021
Offline
18
#4
datum #:

SELECT f.* FROM firms f INNER JOIN firms_category fc ON f.id = fc.firm_id and fc.url='muzykanty' LEFT join firms_media f_media on f_media.url = 'kiev' order by f.id desc

Никогда не включайте в ON условия, которые должны быть в WHERE.

То есть как-то так должно быть:

SELECT f.* FROM firms f 
INNER JOIN firms_category fc ON f.id=fc.firm_id
INNER join firms_media f_media ON f.id=f_media.firm
WHERE fc.url='muzykanty' AND f_media.url='kiev' ORDER BY f.id desc
Когда-нибудь здесь будет форум - https://webinfo.guru –Там я всегда на связи
L
На сайте с 10.02.2015
Offline
138
#5
webinfo1 #:

Никогда не включайте в ON условия, которые должны быть в WHERE.

Но если это INNER JOIN, то иногда это может оптимизировать время выполнения запроса

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий