使用case从sql中的多个表中检索值

时间:2014-03-26 16:04:36

标签: mysql sql

我有两个表,关系用户

与往常一样,关系有两个ID字段,用于关联特定上下文中的某些用户。 我需要的是在一个查询中从这两个表中检索信息,遵循以下明确的逻辑:

relations users .

id1 id2 situation id name other_fields_________________________ 1 3 "inf" 1 "Rich" . 5 2 "inf" 2 "Joan" . 5 1 "inf" 3 "Rito" . 4 2 "inf" 4 "Nena" . 5 4 "inf" 5 "Sini" .

我需要 加入 来自 用户 AND (id1或id2)来自 relations 。所以,如果我的ID 5 ,我会同时获取这两个表,并从ID为 7 的用户处获取所有内容!

这是:

- >我有id 1.我要检索的内容: id2: 3, situation: "inf", name: "Rito" id1: 5, situation: "inf", name:"Sini" (我开始检查关系中id 1的合作伙伴并获取他们的信息,并通过 users.id = relations.id1或relations.id2 加入我的id(1)的位置。

1 个答案:

答案 0 :(得分:0)

这是一个简单的连接。

SELECT r.id2, r.situation, u2.name, r.id1, r.situation, u1.name
FROM users u1, users u2, relations r
WHERE u1.id = r.id1
AND u2.id = r.id2
AND u1.id = 1

使用目标ID更改最后一行