我有一个选择返回10个相同的行,即:
select distinct name from usernames where lastname='Ben';
我只关心不同的值,所以我添加了不同的。现在我将这个查询与另一个查询连接起来并仍然得到不同的值,所以我做了类似的事情:
select frd.value,
frd.date,
frd.loc_id,
frd.loc_type
(CASE distinct usr.name
WHEN 'Alen' THEN 'Nice name'
ELSE 'N/A'
END ) name
from usernames usr,
friends frd
where usr.lastname='Ben'
and frd.id <20
and frd.street<=10
and frd.type='GOOD'
and frd.loc_id=usr.loc_id;
我的问题是关于:
(CASE distinct usr.name
WHEN 'Alen' THEN 'Nice name'
ELSE 'N/A'
END ) name
我可以优化这部分吗?
答案 0 :(得分:-1)
试试这个:
select frd.value,
frd.date,
frd.loc_id,
frd.loc_type,
usr.name
from friends as frd inner join (SELECT distinct (CASE usr.name
WHEN 'Alen' THEN 'Nice name'
ELSE 'N/A'
END, loc_ID from user) usr
ON frd.loc_ID = usr.loc_ID
where usr.lastname='Ben'
and frd.id <20
and frd.street<=10
and frd.type='GOOD'
抱歉,我搞乱了连接语法,因此更容易阅读。