mysql一行對應多列的關聯查詢有關問題,有執行個體及詳細描述

來源:互聯網
上載者:User
mysql一行對應多列的關聯查詢問題,有執行個體及詳細描述,求助
有兩個表

t1表有 4個欄位 id,city_id1,city_id2,city_id3

t2表有2個欄位 id,city_name

t1表中的city_id1,2,3都是和t2表中的id對應

例如:

t1表有一條記錄 1,26,29,50

t2表有三條記錄
26 北京
29 上海
50 天津

現在我的需求是 希望能一條sql語句查出來t1中這條記錄,並顯示city_id1,2,3對應的城市 例如
結果: 1,北京,上海,天津

sql語句應該怎麼寫?
------解決思路----------------------
select id,
(select city_name from t2 where id=t1.city_id1) as city_name1,
(select city_name from t2 where id=t1.city_id2) as city_name2,
(select city_name from t2 where id=t1.city_id3) as city_name3
from t1

------解決思路----------------------
sql斑竹說了,我說另一種解決思路~
寫一個函數,定義一個static變數$city數組,讓它以城市id為鍵,城市名稱為值
每次在後台編輯城市資料,就產生一個序列化城市資料的檔案
系統啟動時讓那個靜態變數讀取檔案
這個函數,傳入城市id,就根據$city立刻返回城市名稱
因為是靜態變數,在單個請求中多次調用的開銷不大,就是初始化需要讀一個檔案
這樣可以解決你網站中所有靠城市id轉換名稱的需求
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.