我有一张桌子:
票
record_id user_id type
1 1 0
2 1 1
3 1 0
问题 //键入 - 0
id title
1 Title1
2 Title2
3 Title3
回答 // type-1
id question_id
2 2
我需要获取此输出数据的请求
record_id user_id type title
1 1 0 Title1
2 1 1 Title2
3 1 0 Title3
我认为这将是有条件的左连接(如果type = 0,则左边连接有问题表;如果type = 1则左边连接和答案表)。 我怎么能这样做?
答案 0 :(得分:1)
如果我理解你的逻辑,这应该会给你正在寻找的结果:
SELECT
v.record_id,
v.user_id,
v.type,
COALESCE(q1.title, q2.title) as title
FROM
votes v LEFT JOIN question q1
ON v.type=0 AND v.record_id=q1.id
LEFT JOIN answer a
ON v.type=1 AND v.record_id=a.id
LEFT JOIN question q2
ON a.question_id=q2.question_id
答案 1 :(得分:0)
SELECT votes.record_id, votes.user_id, votes.type, question.title FROM votes LEFT JOIN question ON votes.type=0 AND question.id=votes.record_id LEFT JOIN answer ON votes.type=1 AND answer.id=votes.record_id