2010-11-08 78 views
2

这是我的用户表模式MySQL查询代

CREATE TABLE IF NOT EXISTS `ehobe_user` (
    `user_id` bigint(20) NOT NULL, 
    `user_email` varchar(80) NOT NULL, 
    `user_password` varchar(50) NOT NULL, 
    `user_fname` varchar(255) NOT NULL, 
    `user_lname` varchar(255) NOT NULL, 
    `user_terms` enum('yes','no') NOT NULL DEFAULT 'yes', 
    `is_active` enum('yes','no') NOT NULL DEFAULT 'yes', 
    `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`user_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

,这是我的朋友表模式

CREATE TABLE IF NOT EXISTS `ehobe_friends` (
    `user_id1` bigint(20) NOT NULL, 
    `user_id2` bigint(20) NOT NULL, 
    `relationship_id` int(1) NOT NULL COMMENT '1 - user1 request, 2- user2 request, 3 - friends, 4- user1 blocked, 5 - user2 blocked' 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

,所以我需要选择用户名和姓谁是我在FRINDS朋友表。

回答

0

从逻辑上讲,您希望获得数组中的所有朋友并检查每个用户的匹配信息。我会给你代码,但我不知道你在写什么语言。

+0

我只需要MySQL查询来获取我的朋友谁是目前与relatiionship_id = 3 – pravat231 2010-11-08 20:10:13

+0

朋友表在这种情况下,在这里你去所有的细节:SELECT * FROM ehobe_friends WHERE relationship_id = 3。如果你想要单独的字段,请将*替换为所需字段的名称。 – Tmas 2010-11-09 11:41:35

3

假设你想要USER_ID#67的朋友。

尝试:

select u.user_id, u.user_fname, u.user_lname 
    from ehobe_user u 
inner join ehobe_friends f1 on (u.user_id = f1.user_id1) 
where f1.user_id2 = 67 
union 
select u.user_id, u.user_fname, u.user_lname 
    from ehobe_user u 
inner join ehobe_friends f2 on (u.user_id = f2.user_id2) 
where f2.user_id1 = 67 
+0

+ 1的确如此。 – joksnet 2010-11-08 20:28:24