是否可以将这两个选择语句优化为一个?

时间:2013-02-07 20:04:37

标签: sql database web multiple-select

Select 1 
from Friend 
where Friend.UserID = 1 
  and FriendID = (select User.UserID from User where UserName = 'friend_user');

我要做的是检查用户是否与其他用户“朋友”。因此,当用户导航到“foo.com/user/username”时,会传递用户名,那时我会进行检查。我宁愿不使用两个选择,但似乎这是唯一的方法。对于完成这样的任务的最佳方式的任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以改为使用JOIN

Select 1 
from Friend f
join User u
    on f.FriendID = u.UserID
    and u.UserName = 'friend_user'
where 
    f.UserID = 1;

答案 1 :(得分:1)

回答:“这有效,但是如果我想从User表中选择一些内容,比如Friends UserName等等? -

Select u.username, count(f.friends)
from Friend f
join User u
    on f.FriendID = u.UserID
    and u.UserName = 'friend_user'
where 
    f.UserID = 1;