Mysql 如何在同一查询中筛选SQL中的值

Mysql 如何在同一查询中筛选SQL中的值,mysql,sql,database,substring,Mysql,Sql,Database,Substring,我会尝试通过例子来解释我需要什么 我有两张桌子 TableA ID Name 1 John 2 Mary TableB ID IDNAME 1 1#ab 2 1#a 3 2#ac 因此,我需要从TableB中选择每个id,并使用TableB.IDNAME中的substring_index函数从tableA中获取名称 Example SELECT `ID`, SUBSTRING_INDEX(`IDNAME`, '#', 1) AS 'NAME' FROM `tableB

我会尝试通过例子来解释我需要什么

我有两张桌子

TableA
ID  Name
1   John
2   Mary

TableB
ID  IDNAME
1   1#ab
2   1#a
3   2#ac
因此,我需要从TableB中选择每个id,并使用TableB.IDNAME中的substring_index函数从tableA中获取名称

Example
SELECT `ID`, SUBSTRING_INDEX(`IDNAME`, '#', 1) AS 'NAME' FROM `tableB`
这将返回下面的结果,但我想从表A中获取相应的名称,而不是名称列中的id值

TEMP Table
ID  NAME
1   1         <= John
2   1         <= John
3   2         <= Mary
希望您能帮助我

您可以这样做:

select b.*, a.name
from b left join
     a
     on substring_index(b.idname, '#', 1) = a.id;
您不需要子字符串索引。另一种方法是使用以下方法:


非常感谢它的帮助,我根据我的需要和它的工作情况调整了它。。另一个问题。。如果我需要与另一个表建立这样的链接,我该怎么做?
select b.*, a.name
from b left join
     a
     on b.idname like concat(a.id, '#%');