无法使其构建此查询

时间:2014-02-06 18:08:04

标签: mysql

我只想根据连接的位置获取行。它是HOSPEDAJE加入HOTEL,或HOSPEDAJE加入APARTAMENTO,但从不在同一时间。

我收到此错误:#1241 - Operand should contain 1 column(s)

SELECT DISTINCT(Nombre,Ciudad,Provincia,Estrellas,Tipo,null,null) 
FROM hospedaje, hotel, habitacion
WHERE 
  hotel.hospedaje_id = hospedaje.id
  AND habitacion_id = habitacion.id

UNION

SELECT DISTINCT(Nombre,Ciudad,Provincia,null,null,Disponibles,Capacidad) 
FROM hospedaje, apartamento
WHERE apartamento.hospedaje_id = hospedaje.id

1 个答案:

答案 0 :(得分:1)

SELECT Nombre,Ciudad,Provincia,null as Estrellas,null as Tipo,Disponibles,Capacidad
FROM hospedaje, apartamento
WHERE apartamento.hospedaje_id = hospedaje.id

UNION

SELECT Nombre,Ciudad,Provincia,Estrellas,Tipo,null,null
FROM hospedaje, hotel, habitacion
WHERE 
  hotel.hospedaje_id = hospedaje.id
  AND habitacion_id = habitacion.id

ORDER BY 1

Union无论如何都会有所不同,否则你会使用union。

使用distinct的正确方法是没有(),例如

SELECT DISTINCT Nombre,Ciudad,Provincia,Estrellas,Tipo,null,null
FROM hospedaje, hotel, habitacion
WHERE 
  hotel.hospedaje_id = hospedaje.id
  AND habitacion_id = habitacion.id