将最后10个订单带回重复

时间:2015-10-07 11:34:13

标签: mysql sql

我有以下查询

SELECT a.id, a.fecha, a.ser, a.numero, c.nombre_apellido, a.estado, a.tipo, a.articulo, a.precio_asignado, a.retirada, a.pronta, a.precio, a.confirmada, d.marca, a.modelo, a.fecha_prometido, a.fecha_asignado, a.presupuesto, a.cant_llamados
FROM (
(
(
ordenes_servicio_bitacora b
LEFT JOIN ordenes_reparaciones a ON b.id_orden = a.id
)
LEFT JOIN clientes c ON a.cliente_id = c.id
)
LEFT JOIN marcas d ON a.marca_id = d.id
)
ORDER BY b.id_bitacora DESC 
LIMIT 10

它给我带来了这个 enter image description here

因为你看到订单的id列重复了,因为与bitacora表交叉我不需要重复,任何想法?提前谢谢。

2 个答案:

答案 0 :(得分:1)

DISTINCT应该在您的情况下完成工作,因为所有列的数据都会针对该行而不仅仅是id列重复:

SELECT DISTINCT 
  a.id, a.fecha, a.ser, a.numero, 
  c.nombre_apellido, a.estado, 
  a.tipo, a.articulo, a.precio_asignado, 
  a.retirada, a.pronta, a.precio, 
  a.confirmada, d.marca, a.modelo, 
  a.fecha_prometido, a.fecha_asignado, 
  a.presupuesto, a.cant_llamados
FROM ordenes_servicio_bitacora b
LEFT JOIN ordenes_reparaciones a ON b.id_orden   = a.id
LEFT JOIN clientes c             ON a.cliente_id = c.id
LEFT JOIN marcas d               ON a.marca_id   = d.id 
ORDER BY b.id_bitacora DESC   
LIMIT 10

答案 1 :(得分:0)

    SELECT a.id, a.fecha, a.ser, a.numero, c.nombre_apellido, a.estado, a.tipo, a.articulo, a.precio_asignado, a.retirada, a.pronta, a.precio, a.confirmada, d.marca, a.modelo, a.fecha_prometido, a.fecha_asignado, a.presupuesto, a.cant_llamados
FROM (
(
(
(SELECT DISTINCT id_orden
FROM  `ordenes_servicio_bitacora` 
ORDER BY id_bitacora DESC 
LIMIT 10) b
LEFT JOIN ordenes_reparaciones a ON b.id_orden = a.id
)
LEFT JOIN clientes c ON a.cliente_id = c.id
)
LEFT JOIN marcas d ON a.marca_id = d.id
)

我刚做了一个子查询并完成了工作,感谢答案和评论:)