1

我对 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

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

谢谢

4

3 回答 3

1

在 mysql 中有许多用于字符串操作的函数,包括你可以使用的 concat

mysql> SELECT CONCAT('My', 'S', 'QL');
        -> 'MySQL'

我想你可以使用 select f.id,f.firstname, (select l.lastname from userlast l where l.src = concat('F/',f.id) as name from userfirst f

于 2013-05-30T09:43:55.740 回答
1
SELECT
    f.id,
    f.firstname,
    l.lastname
FROM
    userfirst f
INNER JOIN userlast l
    ON l.src = CONCAT('F/',f.id)
于 2013-05-30T09:50:40.303 回答
1

尝试使用JOIN它的效率更高:

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

你可以在这里看到结果,小提琴由Meherzad

于 2013-05-30T09:42:00.153 回答