繁体   English   中英

如何结合这两个选择查询?

[英]How do I combine these two select queries?

这是我尝试过的示例:

SELECT
    *
FROM
    (
        SELECT
            username,
            nickname,
            email
        FROM
            accounts
        WHERE
            id = 1
    ) AS accdetails,
    (
        SELECT
            rank
        FROM
            ranks
        WHERE
            userid = 1
        AND group = "admin"
        LIMIT 1
    ) AS rank;

这是有效的,但前提是用户在名为“ admin”的组中具有排名。 我希望返回的排名不存在时为null,但仍返回用户的用户名,昵称和电子邮件。

我也尝试过使用左连接,但是我似乎也无法正常工作。 发生相同的问题。 可以使用ON accounts.id=ranks.userid联接两个表

我该如何实现?

你尝试过这样的事情吗?

SELECT a.username, a.nickname, a.email, a.id, r.rank
FROM accounts a 
     LEFT OUTER JOIN ranks r on a.id = r.userid and r.group = 'admin';

您可以使用左联接

SELECT    *
FROM  (
        SELECT
            username,
            nickname,
            email, 
            id
        FROM             accounts
        WHERE             id = 1
    )  accdetails
LEFT JOIN 
    (
        SELECT             rank
        FROM             ranks
        WHERE             userid = 1
        AND group = "admin"
        LIMIT 1
    )  ranks on accdetails.id = ranks.userid;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM