多个选择SQL语句在一个表中每个语句一列

时间:2014-08-10 18:33:14

标签: sql database select

我有这个选择查询

SELECT r.ID, p.Pregunta 
FROM RESPUESTAS r, PREGUNTAS p 
WHERE r.ID_Pregunta = p.ID 

SELECT r.ID, u.Nombre 
FROM RESPUESTAS r, USUARIOS u 
WHERE r.ID_Usuario = u.ID

SELECT r.ID, o.Region 
FROM RESPUESTAS r, REGIONES o 
WHERE r.ID_Region = o.ID

SELECT r.ID, s.Nombre 
FROM RESPUESTAS r, SUCURSALES s
WHERE r.ID_Sucursal = s.ID

SELECT r.ID, d.Nombre 
FROM RESPUESTAS r, DEPARTAMENTOS d
WHERE r.ID_Departamento = d.ID

SELECT r.ID, p.Nombre 
FROM RESPUESTAS r, PRODUCTOS p
WHERE r.ID_Producto = p.ID

我想将每个人显示为一个包含单个查询的列(r.ID可以是所有人的同一列)我知道我可能会使用INNER JOIN但我不知道知道必须这样做

如果他们中的任何人没有任何数据会怎么样?

2 个答案:

答案 0 :(得分:1)

SELECT r.ID
    ,p.Pregunta 
    ,u.Nombre 
    ,o.Region 
    ,s.Nombre 
    ,d.Nombre 
    ,p.Nombre 
FROM RESPUESTAS r
LEFT JOIN PREGUNTAS p 
    ON r.ID_Pregunta = p.ID 
LEFT JOIN USUARIOS u 
    ON r.ID_Usuario = u.ID
LEFT JOIN REGIONES o 
    ON r.ID_Region = o.ID
LEFT JOIN SUCURSALES s
ON r.ID_Sucursal = s.ID
LEFT JOIN DEPARTAMENTOS d
ON r.ID_Departamento = d.ID
LEFT JOIN PRODUCTOS p
ON r.ID_Producto = p.ID

只要表null中存在ID,不存在的记录将以RESPUESTAS的形式出现。

答案 1 :(得分:1)

SELECT r.ID, p.Pregunta, u.Nombre,  o.Region, s.Nombre, d.Nombre, p.Nombre
FROM RESPUESTAS r inner join  PREGUNTAS p on r.ID_Pregunta = p.ID
  inner join USUARIOS u on r.ID_Usuario = u.ID
  inner join REGIONES o on r.ID_Region = o.ID
  inner join SUCURSALES s on r.ID_Sucursal = s.ID
  inner join DEPARTAMENTOS d on r.ID_Departamento = d.ID
  inner join PRODUCTOS p on r.ID_Producto = p.ID