2011-05-30 91 views
0

我有这个连接:加入给两行,而不是一个

select first_name, last_name, photo_path, private_messages, mid_thumb, 
bio_blurb, user_email 
from users 
left join member_photo on users.user_id = member_photo.photo_member_id 
left join user_email_options on users.user_id = user_email_options.email_user_id 
where user_id = 2 

出于某种原因,它给了两行,而不是1行,我期待与用户的信息。有什么明显的,我失踪?我以前做过一堆左连接,似乎从未遇到过这种情况。为什么我会在结果集中获得2个项目?

这里是页面上发生的事情,例如:

http://www.comehike.com/community/hiker_public_profile.php?community_member_id=2

看到的 - 两个记录。

+1

我认为这将取决于你的表中的数据...我希望你检查过,但是当你运行一个会发生什么单独计算每个表的user_id = 2? – jswolf19 2011-05-30 03:46:35

+0

为表格定义了什么样的索引? – 2011-05-30 03:47:41

回答

3

听起来member_photouser_email_options具有多行对应user_id说明2

+0

是的,他们这样做 - 它的用户ID,以及加入的3个表中的每一个都有它。但我认为这只是一行。 – Genadinik 2011-05-30 03:51:24

+0

@Genadinik,我的意思是说,无论是member_photo.photo_member_id有多个行的值为2,或user_email_options.email_user_id有多个行的值为2 – 2011-05-30 03:53:56

+0

啊是的,帮助我找到了一个错误!谢谢! – Genadinik 2011-05-30 04:00:33

相关问题