我对MySQL中的子查询有疑问。问题是: -
有两张表
描述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
以上查询是否可行,如果是/否请告诉正确的解决方案?
由于
答案 0 :(得分:1)
尝试使用JOIN
效率更高:
SELECT
f.id,
f.firstname,
l.lastname
FROM
userfirst f
LEFT JOIN userlast l
ON l.src = CONCAT('F/',f.id)
您可以看到结果here,Meherzad
提供的小提琴
答案 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)