mysql - Mysql中的子查询: Join on two table with string concatenation

标签 mysql

我对 MySQL 中的子查询有疑问。问题是:-

有两个表

  1. 用户至上
  2. 用户最后

描述用户至上

id firstname
1  Anurag
2  Abhishek
3  Prashant

描述用户上次

src lastname
F/1 Jain
F/2 Singh
F/3 Sharma

现在我想要这样的输出:-

id firstname lastname
1  Anurag    Jain
2  Abhishek  Singh
3  Prashant  Sharma

我只想写一个查询,例如:-

select 
  f.id,
  f.firstname, 
  (select l.lastname from userlast l where l.src = 'F/'+f.id) as name 
from userfirst f

以上查询是否可行,如果是/否请告知正确的解决方案?

谢谢

最佳答案

尝试使用 JOIN 效率更高:

SELECT
    f.id,
    f.firstname,
    l.lastname
FROM
    userfirst f
LEFT JOIN userlast l
    ON l.src = CONCAT('F/',f.id)

可以看到结果here , Meherzad

提供的 fiddle

关于mysql - Mysql中的子查询: Join on two table with string concatenation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16832709/

相关文章:

PHP/mySQL - for 循环无法正常工作

php - 商店 codeigniter 购物车

php - 使用我的数据库创建一个简单的数组

php - OneToMany 关系中的 Doctrine2 查询错误

java - JPA Hibernate Spring MySql Tomcat - 连接到 2 个数据库

php - 在数组中查找唯一值

PHP 角色系统 - 逻辑问题

sql - 在 MySQL 中盲目使用 INSERT 有缺点吗?

php - 在 MySQL 列中查找最大值

mysql - 无法将nodejs连接到mysql