0

我正在尝试查询两个相互具有外键的表以显示条件结果,我的表​​如下:

拍卖出价表:

id applicant_id bid auction_id owner.id

拍卖表:

id user_id title description

我需要向登录用户显示的结果是:

title applicant_id [how many bids the project has] auction_id

我当前不工作的查询是:

SELECT (SELECT COUNT(auction_bids.owner_id)
          FROM auction_bids 
         WHERE auction_bids.owner_id = ".$_SESSION['userid']."
       ) AS count, auction_bids.* 
  FROM auction_bids 
 WHERE auction_bids.owner_id = ".$_SESSION['userid']."

我无法获得数据库中每次拍卖的出价数量以及标题谢谢

4

2 回答 2

1

这将列出所有申请人及其在所选用户拥有的所有拍卖中的总出价:

   SELECT a.title, b.applicant_id, COUNT(b.applicant_id) AS bids, a.id
     FROM auction_bids b
     JOIN auctions a ON a.id = b.auction_id
    WHERE b.owner_id = ".$_SESSION['userid']."
 GROUP BY b.applicant_id

在此处查看现场演示。

请记住您的问题owner.id,而在这里我有一个下划线owner_id,可以根据需要进行更改。

根据您对其他回复的评论,您可能希望每次拍卖的结果与您对问题的建议不同。

这将列出来自用户的所有拍卖,包括总出价、拍卖标题和 ID:

   SELECT a.title, COUNT(b.applicant_id) AS total_bids, a.id
     FROM auction_bids b
     JOIN auctions a ON a.id = b.auction_id
    WHERE b.owner_id = ".$_SESSION['userid']."
 GROUP BY b.auction_id

在此处查看现场演示。

于 2013-06-30T02:23:45.507 回答
0

我想你想要一个GROUP BY

SELECT a.title, ab.applicant_id, COUNT(*), a.id
FROM auction a JOIN
     auction_bids ab
     ON a.id = ab.auction_id
WHERE a.user_id = ".$_SESSION['userid']."
GROUP BY a.id
于 2013-06-30T00:50:10.807 回答