MYSQL:根据条件在一个或另一个字段上加入两个表

时间:2014-10-21 13:54:12

标签: mysql join

我试图在一个或另一个字段上连接两个表,具体取决于这些字段的值。

这是我的情况,我有两个用户ID的朋友数据库。例如:

uid1    uid2
------- -------
tom001  bob001
bob001  paul001

在此示例中,bob001是同时拥有tom001paul001的朋友(反之亦然)。

现在我正在尝试获取特定用户的朋友列表,然后将其与用户数据库一起加入,这样我就可以获得用户名,图片等。

我的问题是,如何使用uid1uid2中的值加入两个表,但不能同时加入两个表?在此示例中,如果我想要显示bob001的朋友,我必须首先加入两个表格,然后加入uid1中的值,然后加入uid2中的值。

SQL中是否有办法忽略其中一个用户ID并使用另一个?我可以以某种方式将这些字段的值合并在一起,删除原始用户ID吗?

或者我可以使用IF语句来获取正确的用户ID吗?

TIA

2 个答案:

答案 0 :(得分:2)

如果我理解正确,这里是MYSQL查询。只是为了让MYSQL更容易理解,创建以下视图。

 create view allfriends as select uid1,uid2 from tablename 
 union select uid2,uid1 from tablename;

然后选择

 select uid2 from allfriends where uid1 = 'bob001';

答案 1 :(得分:1)

这有帮助吗? Stackoverflow没有必要复制所有代码 - 但这听起来像是覆盖了你的观点。