多表SQL查询的问题

时间:2018-09-11 18:29:44

标签: 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列

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您的子选择包含多个列。如果您只需要塔拉Cantidad:

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