2011-03-27 24 views
0

好的,這是另一個讓我頭疼的sql查詢。在SQL查詢中爲「LEFT JOIN」定義「WHERE」?

案例:我列出了拍賣的說明,並且該列表還會說明登錄的用戶是否正在觀看此拍賣,或者不是(如喜歡的)。

如果他正在觀看該拍賣,他的用戶ID +拍賣ID在名爲watchlist-auctions的表格內。如果他沒有看,那入口就不在那裏。

這裏是我的查詢:

SELECT 
     `auctions`.`auction_description_1`, 
     `watchlist-auctions`.`watchlist_a_id` as `watch-auction` 
    FROM `auctions` 
    LEFT JOIN `watchlist-auctions` ON `auctions`.`auction_id`=`watchlist-auctions`.`watchlist_a_auction` 
    WHERE `auction_id`='6' 
    GROUP BY `auctions`.`auction_id` 

基本上,它的工作原理,有點,但我不知道在哪裏查詢我所設定的用戶?

我有$userID(在php中)登錄的用戶ID。

我不確定我是否解釋了這個權利,我是這樣鬱悶,因爲這是一個這麼簡單的問題,但是我覺得那些SQL查詢太難了,我覺得我哭了。如果我能更好地解釋這一點,請告訴我我在哪裏搞砸了:/

P.S .:如果我可以爲此提供賞金,我想要提供+100馬上。

回答

2
SELECT 
     `auctions`.`auction_description_1`, 
     `watchlist-auctions`.`watchlist_a_id` as `watch-auction` 
FROM `auctions` 
LEFT JOIN `watchlist-auctions` ON 
      `auctions`.`auction_id`=`watchlist-auctions`.`watchlist_a_auction` 
     AND `watchlist-auctions`.userID= $userID 
WHERE `auction_id`='6' 
GROUP BY `auctions`.`auction_id` 

因此,LEFT JOIN在拍賣+用戶條件都激活,但它不會干擾LEFT表(拍賣)。

+0

謝謝,我要試試這個,如果它工作,我每天都會慶祝你:D – 2011-03-27 02:15:13

+0

親愛的先生,你已經救了我的一天。它的工作原理與我想要的完全相同,非常感謝! – 2011-03-27 02:21:26

0

不完全確定user_id字段在模式中的位置,也不知道表中的字段名稱是什麼;但是你應該能夠將它作爲附加條件添加到where子句中。

WHERE `auction_id`='6' AND `watchlist-auctions`.`user_id` = $userID 
0

我不知道爲什麼你左側的接合部爲每次競價應該是在手錶拍賣:

SELECT 
     `auctions`.`auction_description_1`, 
     `watchlist-auctions`.`watchlist_a_id` as `watch-auction` 
    FROM `watchlist-auctions` 
    inner JOIN `auctions` ON `auctions`.`auction_id`=`watchlist-auctions`.`watchlist_a_auction` 
    WHERE `auction_id`='6' 
     and `user_id` = ....... 
    GROUP BY `auctions`.`auction_id`