我试图在一个或另一个字段上连接两个表,具体取决于这些字段的值。
这是我的情况,我有两个用户ID的朋友数据库。例如:
uid1 uid2
------- -------
tom001 bob001
bob001 paul001
在此示例中,bob001
是同时拥有tom001
和paul001
的朋友(反之亦然)。
现在我正在尝试获取特定用户的朋友列表,然后将其与用户数据库一起加入,这样我就可以获得用户名,图片等。
我的问题是,如何使用uid1
或uid2
中的值加入两个表,但不能同时加入两个表?在此示例中,如果我想要显示bob001
的朋友,我必须首先加入两个表格,然后加入uid1
中的值,然后加入uid2
中的值。
SQL中是否有办法忽略其中一个用户ID并使用另一个?我可以以某种方式将这些字段的值合并在一起,删除原始用户ID吗?
或者我可以使用IF
语句来获取正确的用户ID吗?
TIA
答案 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没有必要复制所有代码 - 但这听起来像是覆盖了你的观点。