Mysql中的子查询:使用字符串连接加入两个表

时间:2013-05-30 09:38:30

标签: mysql

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

有两张表

  1. userfirst
  2. userlast
  3. 描述userfirst

    id firstname
    1  Anurag
    2  Abhishek
    3  Prashant
    

    描述userlast

    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
    

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

    由于

3 个答案:

答案 0 :(得分:1)

尝试使用JOIN效率更高:

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

您可以看到结果hereMeherzad提供的小提琴

答案 1 :(得分:1)

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

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

我猜你可以用 选择f.id,f.firstname,(从userlast l中选择l.lastname,其中l.src = concat('F /',f.id)作为userfirst f的名称

答案 2 :(得分:1)

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