MySQL 查询有多个连接但一次只连接一个 table

MySQL query with multiple joins but only join one table at a time

现在我有 3 个表,userquestionanswer。并且想在一次查询中查询到用户的问题和答案。我试过 left join 但结果不是我所期望的。这是 SQL:

SELECT user.id, question.id as question, answer.id as answer
FROM user
LEFT JOIN question ON user.id = question.user_id
LEFT JOIN answer ON user.id = answer.user_id
where user.id = 1;

结果是这样的:

+------+----------+--------+
| id   | question | answer |
+------+----------+--------+
| 1    | 99       | 10     |
+------+----------+--------+
| 1    | 99       | 11     |
+------+----------+--------+
| 1    | 99       | 12     |
+------+----------+--------+
| 1    | 100      | 10     |
+------+----------+--------+
| 1    | 100      | 11     |
+------+----------+--------+
| 1    | 100      | 12     |
+------+----------+--------+

如果用户有很多问题和答案,将极大地影响性能。
我期望的是这样的:

+------+----------+--------+
| id   | question | answer |
+------+----------+--------+
| 1    | 99       | NULL   |
+------+----------+--------+
| 1    | 100      | NULL   |
+------+----------+--------+
| 1    | NULL     | 10     |
+------+----------+--------+
| 1    | NULL     | 11     |
+------+----------+--------+
| 1    | NULL     | 12     |
+------+----------+--------+

这意味着 user 1 有 2 个问题和 3 个答案。
我怎样才能在一个查询中得到这个结果?或者需要用 2 个查询分开,一个用 question 连接,一个用 answer?

连接

非常感谢!!

SELECT user.id, question.id as question, answer.id as answer
FROM user
FULL OUTER JOIN question ON user.id = question.user_id
FULL OUTER JOIN answer ON user.id = answer.user_id
where user.id = 1;

我认为您需要的是完全外部联接。

您可以合并这 2 个表的结果

SELECT q.user_id as id, q.id AS question, NULL AS answer FROM question q WHERE q.user_id = 1
UNION ALL 
SELECT a.user_id, NULL, a.id FROM answer a WHERE a.user_id = 1