2016-05-24 49 views
-3

我有一個有多個用戶的項目。有兩種用戶類型:訂購人員和出價人員。MySQL/Java - 我怎樣才能做這個SELECT語句?

當人誰命令發佈。它會反映到BIDDERS帳戶。我想要的是這樣的,當投標者沒有出價時,所有可用的出價訂單都會出現在他的賬戶中。我有兩個表:訂單和BIDS

Orders表:

OrderID|Item | OrderStatus| 
1  |Shoes | On-Bidding | 
2  |Bag  | On-Bidding | 
3  |Shirt | On-Bidding | 

BIDS表:

BidID | BidCost | BidStatus |BidderID | OrderID | 
1  | $100 | Waiting | 2  | 2  | 
2  | $200 | Waiting | 1  | 2  | 

,我想用JAVA顯示該表是這樣的:

將出現給用戶的AVAILABLE FOR BID表格:

對於投標人ID 2(他吩咐的袋子所以BidCost列將參加):

Order ID| Item | BidCost | 
2  | Bag | $100 | 
1  | Shoes | NULL | 
3  | Shirt | NULL | 

對於投標人ID 1(他還出價壞$ 200)

Order ID| Item | BidCost | 
2  | Bag | $200 | 
1  | Shoes | NULL | 
3  | Shirt | NULL | 

對於投標人ID 3(他沒有任何出價)

Order ID| Item | BidCost | 
2  | Bag | NULL | 
1  | Shoes | NULL | 
3  | Shirt | NULL | 

我所做的只是選擇所有與ON投標狀況,並與BID表加入它的BidCos噸。但每次我都這樣做。如果某人已經爲某件物品競標並且另一個用戶尚未競標,則競標價格不會顯示爲空。其他用戶的出價將被加入。這樣用戶就會看到其他用戶的出價。

我該如何使用MySQL和JAVA來做到這一點?

我的查詢:

SELECT * 
FROM orders T1 
INNER JOIN 
    SELECT bidcost 
    FROM bids T2 
ON T1.ID=T2.ID 
WHERE orderstatus=ON-BIDDING 
+0

能否請你解釋一下你要存檔的東西。我無法通過你的解釋得到它 – ZeusNet

+0

請具體說一下,說你想要什麼?如果你想讓null值出現在resultset中,只需使用OUTER JOIN。 –

+0

@ZeusNet我想要的是,當投標人沒有出價我想讓他們顯示所有投標訂單,但出價成本只是NULL。如果他爲了某件事而投標,那麼投標費現在將顯示,但僅針對特定投標者。 – Lester

回答

0
SELECT * FROM orders t1 
     LEFT JOIN bids t2 on t1.OrderID = t2.OrderID and t2.BidderID = $user_id 
    WHERE orderstatus=ON-BIDDING 
+0

你剛剛解決了我的問題。你是一個純粹的天才。我不知道爲什麼有人會否定我的問題,我知道這很清楚。謝謝。你不知道你給了多少幫助。 – Lester