Right answers
解法一:(自身链接)官方解答:
SELECT a.name
FROM group_members a INNER JOIN group_members b
ON a.group_leader_id = b.id
AND a.score > b.score;
解法二:(子查询)个人解答
select a.name
from group_members a
where score > (
select b.score
from group_members b
where a.group_leader_id = b.id);
知识点:内连接/子查询
- 内连接基本语法
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
- 子查询注意点
·子查询必须括在圆括号中。
·子查询的 SELECT 子句中只能有一个列,除非主查询中有多个列,用于与 ·子查询选中的列相比较。
·子查询不能使用 ORDER BY,不过主查询可以。在子查询中,GROUP BY ·可以起到同 ORDER BY 相同的作用。
·返回多行数据的子查询只能同多值操作符一起使用,比如 IN 操作符。
·SELECT 列表中不能包含任何对 BLOB、ARRAY、CLOB 或者 NCLOB 类型值的引用。
·子查询不能直接用在聚合函数中。
·BETWEEN 操作符不能同子查询一起使用,但是 BETWEEN 操作符可以用在子查询中。