我有一个包含2列的表,第一个显示问题,然后第二个显示答案
看起来像这样
Question | Answer
Q1 | Ans1
Q2 | Ans2
Q3 | Ans3
我希望它看起来像这样
Q1
Ans1
Q2
Ans2
Q3
Ans3
这是最好的方法吗?
以下是示例数据http://sqlfiddle.com/#!2/cef08/2
谢谢!
答案 0 :(得分:0)
我想知道你为什么要这样做。无论如何,以下查询工作正常。
SELECT *
FROM (
SELECT CONCAT('Q:', q_id, ':1') AS orders, question
FROM question WHERE q_id IN (1, 2, 3)
UNION ALL
SELECT CONCAT('Q:', q_id, ':2') AS orders, answer
FROM answer WHERE q_id IN (1, 2, 3)
) x
ORDER BY orders;
+--------+----------+
| orders | question |
+--------+----------+
| Q:1:1 | Q1 |
| Q:1:2 | Ans1 |
| Q:2:1 | Q2 |
| Q:2:2 | Ans2 |
| Q:3:1 | Q3 |
| Q:3:2 | Ans3 |
+--------+----------+
请注意我认为如果客户端可以转换查询结果,那么sqlfiddle中的JOIN查询优于此UNION。