簡體   English   中英

使用別名形成內部聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM