我有一個用戶表在系統的所有用戶都存儲在數據庫中。 該表具有user_id和business_name以及first_name。 一些用戶是商家,並獲得企業名稱, 一些用戶是消費者,並獲得一個名字。 在第二個表中,我有一個user_id和一個merchant_id(它們定義了交易)和金額的交易。兩個id都引用用戶表。如何從一個mysql表中獲取不同的結果?
Table users:
user_id bus_name first_name role_id
1 Thomas 10
2 comp1 7
3 Peter 10
4 comp2 7
(role_id is defining with 10=consumer, 7=merchant)
Table transactions:
trans_id amount user_id merchant_id
1 12 1 2
2 23 3 2
3 34 3 4
4 19 1 4
現在我想有一個結果作爲一個表的查詢: 此表應包含與量,USER_ID,FIRST_NAME,MERCHANT_ID和bus_name交易。
我想要得到這樣的結果:
trans_id amount user_id first_name merchant_id bus_name
1 12 1 Thomas 2 comp1
2 23 3 Peter 2 comp1
3 34 3 Peter 4 comp2
4 19 1 Thomas 4 comp2
我有問題,要麼我只得到了FIRST_NAME和空bus_name或者我只得到了bus_name而空FIRST_NAME。 我使用的是左連接:
...
left join `users`
on(
(`transactions`.`user_id` = `users`.`user_id`)
)
...
但對於這一點,我會得到USER_ID = 1 FIRST_NAME =托馬斯和bus_name =「」是空的,因爲我只引用一個行表和未還給user_id = 2的不同用戶。
但我想說的是這樣的:
for trans_id=1
get first_name FROM users WHERE transactions.user_id = users.user_id
AND
get bus_name FROM users WHERE transactions.merchant_id = users.user_id
感謝您的幫助,我嘗試了很多事情,但它不工作。
非常感謝,它的工作! – user3899575