mysql - 如何组合这两个选择查询?

标签 mysql

这是我尝试过的示例:

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 account.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';

关于mysql - 如何组合这两个选择查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561066/

相关文章:

mysql - 如何连接2个SQL查询: SELECT from table and DELETE from another?

MySQL创建 View 时如何动态选择从哪个表获取数据

php - 如何使用 php 从远程机器转储和下载 mysql?

mysql - 检查值是否存在于逗号分隔列表中

java - 提取 DatabaseMetaData 时出错;嵌套异常是 com.mysql.jdbc.exceptions.jdbc4。连接关闭后不允许进行任何操作

python - 获取subprocess.check_output输出mysql错误

python - 如何在python中将数组字符串转换为数组

php - 显示数据库中的一行并移至下一列

php - mysql错误: Mysql server has gone away

sql - 如何在第三个查询中包含来自其他两个表的过滤行数?