2015-06-14 3 views
0

У меня есть проблема, которую я не могу определить, и посмотрел на Google и подобные вопросы здесь, но они не совсем то же самое.Использование псевдонима для формирования внутреннего соединения

Я пытаюсь построить MySQL Query, который имеет две части, первая легко и я сделал это штраф, так как он использует существующие отношения, см ...

SELECT 

clientsites.SiteName, 
clients.ClientName, 
pafaddresses.PostTown, 
pafaddresses.PostCode, 
CONCAT("XXXXXXX", Replace(UPPER(pafaddresses.PostCode),' ','')) AS JouneyKeytemp, 
clientsites.SiteType 
FROM clientsites 
INNER JOIN clients ON clientsites.ClientFk = clients.ClientPk 
INNER JOIN pafaddresses ON clients.ActualPAF = pafaddresses.id 

Вы увидите из этого код, который генерирует псевдоним, который объединяет два почтовых индекса и выглядит как xxxxxxxyyyyyy, это работает, но по понятным причинам ive удаляет фактические почтовые индексы.

Что я теперь, что нужно сделать, это привести в двух областях от неродственного таблицы называемых Journeys:

SELECT 
    JourneyKey, 
    SingleDistance, 
    SingleTime 
FROM journeys 

Я хочу, чтобы принести в SingleDistance и SingleTime, где Journey Key = Сформирован Псевдоним JourneyKeyTemp.

Я попытался добавить следующее:

INNER JOIN journeys ON JouneyKeytemp = journeys.JourneyKey 

Но я постоянно получаю ошибку синтаксиса.

Любая помощь будет оценена по достоинству.

ответ

1

Повторите выражение предиката:

INNER JOIN journeys 
ON CONCAT("XXXXXXX", Replace(UPPER(pafaddresses.PostCode),' ','')) = journeys.JourneyKey 

Или вы можете создать подзапрос:

select * from(

SELECT 

clientsites.SiteName, 
clients.ClientName, 
pafaddresses.PostTown, 
pafaddresses.PostCode, 
CONCAT("XXXXXXX", Replace(UPPER(pafaddresses.PostCode),' ','')) AS JouneyKeytemp, 
clientsites.SiteType 
FROM clientsites 
INNER JOIN clients ON clientsites.ClientFk = clients.ClientPk 
INNER JOIN pafaddresses ON clients.ActualPAF = pafaddresses.id)t 

INNER JOIN journeys ON t.JouneyKeytemp = journeys.JourneyKey 
+0

Я клянусь, я попробовал, что раньше, и это не сработало ли теперь так спасибо. Кстати, как мне заставить его сделать правильное внутреннее соединение, так как всегда есть запись в таблице путешествий, поэтому вы хотите отображать все от клиентов и только сопоставление с поездками –

+0

LEFT JOIN travels –

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