2015-11-28 120 views
2

我有這個兩個querys結合來自不同表格的兩個查詢並按公共列排序?

SELECT consejos.consejo as value, 
          consejos.id, 
          consejos.texto, 
          consejos.votos    
        FROM consejos 
        ORDER BY fecha DESC 

而且

SELECT preguntas.pregunta as value, 
          preguntas.id, 
          preguntas.texto, 
          preguntas.votos    
        FROM preguntas 
        ORDER BY fecha DESC 

有沒有什麼簡單的方法來獲得同樣的查詢結果都和排序fecha列?並且可以添加一個字段來確定哪個表是一排?

+1

查找到UNION ALL – Mihai

回答

1

您可以使用union

SELECT value, id, texto, votos, source_table from (
    SELECT consejos.consejo as value, 
           consejos.id, 
           consejos.texto, 
           consejos.votos, 
           'consejos' as source_table, 
           fecha    
         FROM consejos 
UNION 
    SELECT preguntas.pregunta as value, 
           preguntas.id, 
           preguntas.texto, 
           preguntas.votos, 
           'preguntas' as source_table, 
           fecha        
         FROM preguntas 
) as A ORDER BY fecha DESC 

編輯: 爲您額外的要求,將指示從表中它came-你可以在選擇'consejos' as source_table添加到列列表中的列第一,和'preguntas' as source_table到第二

第二個Edit(草莓,這是一個考驗還是什麼?爲什麼我傳:)?)fecha到內部查詢,而不是包裝一個,如果你不希望它有

+0

@Strawberry - 看到我的第二個編輯 –

+0

我必須在兩個查詢中選擇'fecha as ff'並按'ff'進行排序,因爲沒有找到'fecha',但它起作用! :) –

1

使用UNION ALL

Select * From (
SELECT consejos.consejo as value, 
          consejos.id, 
          consejos.texto, 
          consejos.votos    
        FROM consejos 

UNION ALL 

SELECT preguntas.pregunta as value, 
          preguntas.id, 
          preguntas.texto, 
          preguntas.votos    
        FROM preguntas) t 
    ORDER BY t.fecha DESC 
+1

幾乎 - 但不完全是 – Strawberry

+0

@Strawberry你在每個人的答案中都找到'某事',但你的是哪裏? :P –

0

試試這個:

SELECT consejos.consejo AS value 
    ,consejos.id 
    ,consejos.texto 
    ,consejos.votos 
FROM consejos 
UNION ALL 
SELECT preguntas.pregunta AS value 
    ,preguntas.id 
    ,preguntas.texto 
    ,preguntas.votos 
FROM preguntas 
ORDER BY fecha DESC 
0
select id,texto,votos from ((SELECT consejos.consejo as value, 
          consejos.id as id, 
          consejos.texto as texto , 
          consejos.votos as votos    
        FROM consejos) UNION (SELECT preguntas.pregunta as value, 
          preguntas.id as id, 
          preguntas.texto as texto, 
          preguntas.votos as votos    
        FROM preguntas)) as tb ORDER BY fecha DESC 
相關問題