2012-08-22 67 views
0

我有一個帶有照片表(包含照片)和下表(包含關於用戶關於用戶的信息)的MySQL數據庫。與MySQL同時選擇用戶條目和以下條目

我有下面的代碼加載從用戶的照片,當前用戶下:

SELECT photos.* FROM photos,follows 
WHERE follows.following = photos.uid AND 
     follows.follower=$current_uid 
ORDER BY photos.id DESC 

我想加載我的兩個用戶上傳照片的列表,以及對那些用戶關注中。我嘗試了以下,但我不斷收到一大堆重複條目:

SELECT photos.* 
FROM photos,follows 
WHERE (follows.following = photos.uid AND 
     follows.follower=$current_uid) OR 
     photos.uid=$current_uid 
ORDER BY photos.id DESC 

任何人都可以幫忙嗎?

回答

0

試試這個:

SELECT 
    photos.* 
FROM 
    photos 
LEFT OUTER JOIN 
    follows 
ON 
    photos.uid = follows.following AND follows.follower = $current_uid 
WHERE 
    photos.uid = $current_uid 
OR 
    follows.following IS NOT NULL 

或者:

​​
+0

謝謝!完美工作!我總是對連接感到困惑,所以這爲我清除了一些。 –

+0

通過說你想從兩個表中選擇,但沒有指定任何條件鏈接他們在你的查詢的'OR'部分,你基本上告訴數據庫給你'$ current_uid'的照片與每一行配對(所有用戶)在下表中。因此所有的重複。如果可以,請點擊此答案左側的大複選標記圖標以顯示您的問題已解決。 –