我有两张桌子
1:tbl_member_registration与主键(mem_id)
2:带外键的tbl_phone(parent_code)
我想离开加入这两个表但是tbl_phone parent_code列有不同的值,以前缀 mem _ 开头,如何加入这两个表?
答案 0 :(得分:2)
您可以尝试以下加入:
SELECT *
FROM tbl_member_registration t1
LEFT JOIN tbl_phone t2
ON t1.mem_id = CAST(SUBSTRING_INDEX(t2.parent_code, '_', -1) AS SIGNED);
接下来,您可能希望清理表,以便可以使用相等=
来连接条件。在对parent_code
进行丑陋的调用时,SUBSTRING_INDEX
列上无法使用索引。
答案 1 :(得分:1)
我还没有检查过,但您可以尝试这样做。
select *
from tbl_member_registration tmr join tbl_phone tp
on tp.parent_code = concat('mem_',tmr.mem_id)
更多参考详情:CONCAT
答案 2 :(得分:0)
我希望这会对你有所帮助..
SELECT *
FROM tbl_member_registration t1
INNER JOIN tbl_phone t2
ON t1.mem_id = SUBSTR(t2.parent_code,5, 2);
答案 3 :(得分:0)
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) );