mysql - SQL查询多表的问题

标签 mysql sql

我有 3 个相关的表,我需要在另一个查询中创建一个查询来连接它们,这是我到目前为止得到的:

SELECT a.idarticulo,
       a.idcategoria,
       c.nombre as categoria,
       a.idarticulo,
       a.idsucursal,
       s.nombre as sucursal,
       (SELECT talla.idtalla,
               talla.nombre,
               articulo_talla.idtalla,
               articulo_talla.cantidad,
               articulo_talla.idarticulo,
               articulo.idarticulo,
               articulo.nombre
        FROM talla
               JOIN articulo_talla ON talla.idtalla = articulo_talla.idtalla
               JOIN articulo ON articulo_talla.idarticulo = articulo.idarticulo
        WHERE articulo.idarticulo = a.idarticulo) as tallaCantidad,
       a.codigo,
       a.nombre,
       a.stock,
       a.descripcion,
       a.imagen,
       a.condicion
FROM articulo a
       JOIN categoria c ON a.idcategoria = c.idcategoria
       JOIN sucursal s ON a.idsucursal = s.idsucursal
ORDER BY idarticulo DESC

但它引发了以下错误:#1241 - 操作数应包含 1 列

感谢您的帮助

最佳答案

您的子选择包含多列。如果您只需要tallaCantidad:

SELECT a.idarticulo,a.idcategoria,c.nombre as categoria, a.idarticulo,a.idsucursal,s.nombre as sucursal,
(SELECT talla.idtalla, talla.nombre, articulo_talla.idtalla, articulo_talla.cantidad, articulo_talla.idarticulo, articulo.idarticulo, articulo.nombre
FROM talla
    INNER JOIN articulo_talla ON talla.idtalla=articulo_talla.idtalla
    INNER JOIN articulo ON articulo_talla.idarticulo=articulo.idarticulo
    WHERE articulo.idarticulo=a.idarticulo) as tallaCantidad, a.codigo,a.nombre,a.stock,a.descripcion,a.imagen,a.condicion
FROM articulo a
INNER JOIN categoria c ON a.idcategoria=c.idcategoria
INNER JOIN sucursal s ON a.idsucursal=s.idsucursal
ORDER BY idarticulo DESC

关于mysql - SQL查询多表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282124/

相关文章:

mysql - 在 mysql 中选择查询中的按天搜索

mysql - 更改 SQL 数据库中的 bool 值

mysql - 加入 2 个表(一对多)并在第二个表中获取最新条目

sql - 每组中出现次数最多的值

java - 如何最好地在数据库中存储时间戳或日期?

mysql - 将每月成本除以一年中剩余的月数并将其拆分为多行

mysql - 数据库为一所功能性学校设计一个简单的数据库

php - SQL 上的组项目

mysql - 在 SQL 中,WHERE 子句的顺序有什么影响吗?

MySQL:仅从一个表中删除带有 "WHERE ... NOT IN"的行