2015-11-06 2 views
0

Как добавить это ...Как добавить это левое соединение к моему запросу?

LEFT JOIN quote_header ON 
    (job_header.job = '0' + LEFT(quote_header.user_5, 5)) 

Для этого ...

SELECT 
    job_header.job, 
    job_header.suffix, 
    job_header.customer, 
    job_header.description, 
    job_header.comments_1, 
    job_header.date_due, 
    job_header.part, 
    job_header.customer_po, 
    job_header.date_closed, 
    job_header.flag_hold, 
    wo_user_flds.user_7, 
    wo_user_flds.user_3, 
    wo_user_flds.user_6, 
    wo_user_flds.user_5, 
    wo_user_flds.user_2 

FROM job_header 

LEFT JOIN wo_user_flds ON 
    (job_header.job = wo_user_flds.job) AND 
    (job_header.suffix = wo_user_flds.suffix) 

WHERE job_header.date_closed = '000000' 

AND LENGTH(job_header.job) > '5'; 

Я пытался добавить его сразу же после первого соединения слева, но он просто падает.

+3

Какая ошибка вы получаете? –

+1

Какая ошибка вы получаете или получаете? – christiandev

+1

Я не получаю ошибку, она просто зависает. – Slime

ответ

0

Может попробовать использовать CONCAT вместо «0» + LEFT (......

ИЛИ

Может быть, вы могли бы попробовать положить quote_header в временную таблицу с измененным полем, а затем присоединиться к этому ...

SELECT CONCAT('0', LEFT(quote_header.user_5, 5)) as quoteHeaderUser_5, field2, field3 etc etc 
INTO #tmpQH 
FROM quote_header 

Так то вы можете иметь ....

LEFT JOIN #tmpQH ON 
    (job_header.job = quoteHeaderUser_5) 
0

Попробуйте создать пару взглядов ...

View1

SELECT 
    ... 

FROM job_header 
WHERE job_header.date_closed = '000000' 
AND LENGTH(job_header.job) > '5'; 

View2

SELECT 
    ..., 
    '0' + LEFT(quote_header.user_5, 5) as 'FirstFiveOfUser5' 
from quote_header 

Затем, вы можете присоединиться, как это ...

SELECT 
    job_header.job, 
    job_header.suffix, 
    job_header.customer, 
    job_header.description, 
    job_header.comments_1, 
    job_header.date_due, 
    job_header.part, 
    job_header.customer_po, 
    job_header.date_closed, 
    job_header.flag_hold, 
    wo_user_flds.user_7, 
    wo_user_flds.user_3, 
    wo_user_flds.user_6, 
    wo_user_flds.user_5, 
    wo_user_flds.user_2 

FROM View1 as job_header 

LEFT JOIN wo_user_flds ON 
    (job_header.job = wo_user_flds.job) AND 
    (job_header.suffix = wo_user_flds.suffix) 
LEFT JOIN View2 as quote_header ON 
    (job_header.job = quote_header.FirstFiveOfUser5) 

Это может помощь в производительности.

Смежные вопросы