好的,这是另一个令我头疼的SQL查询。
案例:我列出了拍卖的描述,该列表还会说明登录的用户是否正在观看此次拍卖(如收藏)。
如果他正在观看拍卖,他的用户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`
基本上,它有点工作,但是我不知道在查询中我在哪里定义用户ID?
我在$userID
(在php中)登录了用户ID。
我不确定我是否正确解释了这一点,因为这是一个如此简单的问题,因为这是一个非常简单的问题,但是我发现这些SQL查询非常困难。如果我能更好地解释一下,请告诉我我搞砸了:/
P.S。:如果我能为此提供赏金,我想马上提供+100。
答案 0 :(得分: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表(拍卖)。
答案 1 :(得分:0)
不完全确定user_id字段在架构中的位置,也不确定表中的字段名称是什么;但您应该能够将其作为where子句的附加条件添加。
WHERE `auction_id`='6' AND `watchlist-auctions`.`user_id` = $userID
答案 2 :(得分: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`