[英]Using an alias to form an inner join
我有一個我無法解決的問題,並在這里查看了google和類似問題,但它們並不完全相同。
我正在嘗試構建一個包含兩部分的MySQL查詢,第一部分很簡單,我做得很好,因為它使用了現有的關系,請參閱...
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,這確實有效,但是出於顯而易見的原因,我已刪除了實際的郵政編碼。
我現在要做的是從一個不相關的表Journeys中引入兩個字段:
SELECT
JourneyKey,
SingleDistance,
SingleTime
FROM journeys
我想輸入SingleDistance和SingleTime,其中旅程鍵= JourneyKeyTemp的生成別名。
我嘗試添加以下內容:
INNER JOIN journeys ON JouneyKeytemp = journeys.JourneyKey
但我只是不斷收到語法錯誤。
任何幫助,將不勝感激。
在連接謂詞中重復該表達式:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.