mysql - 通过内部连接或左/右连接替换与标量子查询的比较

标签 mysql join subquery scalar-subquery

我需要使用内部联接或右/左联接来编写此查询,但我不知道如何开始:

select * from radicados where asignado = 
    (select estudianteid from estudiantes where usuario =
        (select usuarioid from usuarios where nombre =  $nombre_usuario))

但我不知道如何对连接做同样的事情。

我认为这一定是这样的:

select * from radicados inner join usuarios on usuarioid=usuario

最佳答案

看起来你想要这样的东西:

select radicados.*
from
  radicados
  join estudiantes
    on radicados.asignado = estudiantes.estudianteid
  join usarios
    on estudiantes.usario = usarios.usarioid
  where usarios.nombre = $nombre_usuario

在构建这样的查询时,从 FROM 子句开始。根据它们之间的关系,将包含所需数据的各种表连接在一起。如果需要,添加一个 WHERE 子句,描述您要根据其过滤联接结果的任何其他条件。然后根据需要填写 SELECT 列表。

在某些情况下,您可能还需要添加其他子句(ORDER BYGROUP BY 等),但一旦您理解了基本查询,那也不错。

关于mysql - 通过内部连接或左/右连接替换与标量子查询的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28202970/

相关文章:

mysql - 哪个查询被优化

php - MySQL 表中的 64 位密码哈希

MySQL 一对多 COUNT 求和

SQL - 在新列而不是新行上使用多个 WHERE 条件进行 SELECT

MySQL:使用子查询在 SELECT 语句中定义列

MYSQL - 显示总工作时间的总和,但只显示最后更新日期时间的结果

php - 不等于mysql查询codeigniter中的条件

mysql - 使用 LIKE 从逗号分隔的字符串中提取 ID

mysql - 从 2 个表中选择,均使用 JOIN 并通过 ID 连接

mysql - 选择这个或那个但不能同时选择两者