Jump to content
  • 0

Убрать LEFT JOIN


insy
 Share

Question

6 answers to this question

Recommended Posts

  • 0
select

*

from

table1,

table2

where

table1.field = table2.field

Ваще бред! В такой ситуации будет хороший загруз базы и выберутся все запии из обоих таблиц, где table1.field = table2.field. Это никак не соответствует LEFT JOIN. Для того и придумано LEFT JOIN, что иначе такую выборку никак не реализовать с помощью только SQL, тут нужно призывать на помощь скрипты и загружать сервер. Есть вариант еще со вложенной выборкой... Но это тоже сильно загрузит базу.

А почему, собственно, не подходит LEFT JOIN?

Edited by Searcher
Link to comment
Share on other sites

  • 0

Просто есть запрос к котрому Join'ятся подзапросы

 LEFT JOIN (
SELECT
SUM(__PS.fn_oms) AS oms_summ,
SUM(__PS.fn_rate_by_state_norm) AS state_norm,
__PS.`pk_id` as id
FROM
tusers U

LEFT JOIN tmain_and_under_foundings MAUF ON MAUF.fk_user = U.pk_id
LEFT JOIN tgeneral_description_section GDS ON GDS.fk_user = U.pk_id
LEFT JOIN tpost_section __PS ON __PS.fk_mauf = MAUF.pk_id
LEFT JOIN tdic_code_post POST_CODE ON __PS.fk_code_medic_post = POST_CODE.pk_id
GROUP BY
__PS.fk_user,
__PS.fk_mauf,
__PS.fk_code_department,
__PS.`fk_code_medic_post`
)POST_DEP_COUNTER ON PS.pk_id = POST_DEP_COUNTER.id

И благодаря им очень сильно замедляется выполнение самого запроса... Вот и хочу как-то переписать!

Edited by insy
Link to comment
Share on other sites

  • 0

Тут сложно сказать что-либо - не видя базу и не зная задачу трудно дать какие-то конкретные советы. В первую очередь стоит проверить все индексы, сделать на всякий случай OPTIMIZE и FLUSH. Если есть возможность использовать JOIN вместо LEFT JOIN, то используйте его - он работает быстрее. Ну и, конечно же, сделайте EXPLAIN, чтобы понять что именно тормозит

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy