MySQL/Java-如何执行此SELECT语句?
我有一个有多个用户的项目。有两种用户类型:订购者和出价者 当邮递员订购时。它将反映到投标人帐户。我想要的是这样的,当一个投标人没有投标任何东西时,所有可供投标的订单都会出现在他的账户上。我有两张桌子:订单和出价 订单表:MySQL/Java-如何执行此SELECT语句?,java,mysql,sql,Java,Mysql,Sql,我有一个有多个用户的项目。有两种用户类型:订购者和出价者 当邮递员订购时。它将反映到投标人帐户。我想要的是这样的,当一个投标人没有投标任何东西时,所有可供投标的订单都会出现在他的账户上。我有两张桌子:订单和出价 订单表: OrderID|Item | OrderStatus| 1 |Shoes | On-Bidding | 2 |Bag | On-Bidding | 3 |Shirt | On-Bidding | BidID | Bi
OrderID|Item | OrderStatus|
1 |Shoes | On-Bidding |
2 |Bag | On-Bidding |
3 |Shirt | On-Bidding |
BidID | BidCost | BidStatus |BidderID | OrderID |
1 | $100 | Waiting | 2 | 2 |
2 | $200 | Waiting | 1 | 2 |
投标表:
OrderID|Item | OrderStatus|
1 |Shoes | On-Bidding |
2 |Bag | On-Bidding |
3 |Shirt | On-Bidding |
BidID | BidCost | BidStatus |BidderID | OrderID |
1 | $100 | Waiting | 2 | 2 |
2 | $200 | Waiting | 1 | 2 |
我希望使用JAVA显示的表如下所示:
将向用户显示的“可供投标”表:
对于ID为2的投标人(他对行李进行了投标,因此将加入BidCost列):
对于ID为1的投标人(他还以200美元的价格竞标bad)
对于ID为3的投标人(他没有出价)
我所做的只是选择所有具有“投标状态”的项目,并将其与BidCost的投标表连接起来。但每次我都这么做。如果有人已经对某个项目进行了投标,而另一个用户没有,则投标成本在他/她看来不会为空。其他用户的出价将被加入。因此,该用户将看到另一个用户的出价
如何使用MySQL和JAVA实现这一点
我的问题是:
SELECT *
FROM orders T1
INNER JOIN
SELECT bidcost
FROM bids T2
ON T1.ID=T2.ID
WHERE orderstatus=ON-BIDDING
你能解释一下你想归档什么吗。我听不懂你的解释。请说得具体一点,说出你想要达到的目标?如果您想在结果集中显示空值,只需使用外部联接即可。@ZeusNet我想要的是当投标人不投标任何东西时,我希望他们显示所有投标订单,但投标成本将为空。如果他出价,出价成本现在会显示,但只针对特定的出价人。你刚刚解决了我的问题。你真是个天才。我不知道为什么有些人否定了我的问题,我知道这很清楚。非常感谢。你不知道你给了多少帮助。
SELECT *
FROM orders T1
INNER JOIN
SELECT bidcost
FROM bids T2
ON T1.ID=T2.ID
WHERE orderstatus=ON-BIDDING
SELECT * FROM orders t1
LEFT JOIN bids t2 on t1.OrderID = t2.OrderID and t2.BidderID = $user_id
WHERE orderstatus=ON-BIDDING