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, '#%');