簡體   English   中英

MYSql左連接兩個具有不同列值的表

[英]MYSql left join two tables with column different values

我有兩張桌子
1:帶有主鍵(mem_id)的tbl_member_registration
2:帶有外鍵(父代碼)的tbl_phone

我想離開了連接這兩個表,但tbl_phone parent_code列有不同的值開始前綴mem_,如何連接這兩個表?

在此處輸入圖片說明

在此處輸入圖片說明

您可以嘗試以下聯接:

SELECT *
FROM tbl_member_registration t1
LEFT JOIN tbl_phone t2
    ON t1.mem_id = CAST(SUBSTRING_INDEX(t2.parent_code, '_', -1) AS SIGNED);

演示

展望未來,您可能希望清理表,以便可以使用equal =設置連接條件。 當將索引包裝在對SUBSTRING_INDEX的丑陋調用中時,就parent_codeparent_code列上使用索引。

我沒有檢查過,但是您可以嘗試使用。

select *
from tbl_member_registration tmr join tbl_phone tp
on tp.parent_code = concat('mem_',tmr.mem_id)

有關更多參考詳細信息: CONCAT

希望對您有所幫助。

SELECT *
    FROM tbl_member_registration t1
    INNER JOIN tbl_phone t2
        ON t1.mem_id = SUBSTR(t2.parent_code,5, 2);

http://rextester.com/CSBZ60078

select tbl_phone.*, tbl_member_registration.*
from tbl_member_registration.mem_id 
left join tbl_phone on tbl_member_registration.mem_id = (select substring(tbl_phone.parent_code, 5,2) );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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