我只想根据连接的位置获取行。它是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
答案 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