我有这两个问题
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
列排序?是否可以添加一个字段来确定哪个表是一行?
答案 0 :(得分: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
修改强>
对于您的其他请求,要添加一个列,指示它来自哪个表 - 您只需添加到第一个选择'consejos' as source_table
中的列列表,然后'preguntas' as source_table
添加到第二个
第二次编辑(对于草莓,这是一个测试还是什么?我通过了吗?)?)
将fecha
添加到内部查询中,但如果您不想要它,则不添加{1}
答案 1 :(得分: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
答案 2 :(得分: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
答案 3 :(得分: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