2011-05-30 49 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

相關問題