I am using the following query to get the transactions from a table made to and from a user. I then want to retrieve the username for the sender_id and for the recipient_id. However I can only seem to get it for the recipient_id or the sender_id. Anyone have any ideas how I can get both.
我使用以下查询从用户的表中获取事务。然后我想检索sender_id和recipient_id的用户名。但是我似乎只能为recipient_id或sender_id获取它。任何人都有任何想法,我怎么能得到两者。
SELECT us.name, ta.amount, ta.recipient_id, ta.sender_id, ta.timestamp_insert
FROM `transactions` AS ta
JOIN users AS us
ON ta.recipient_id=us.u_id
WHERE ta.sender_id =111111 OR ta.recipient_id = 111111
LIMIT 0 , 10
Transactions Table Columns:
事务表列:
transaction_id
tw_id
tw
sender_id
recipient_id
amount
timestamp_insert
timestamp_start timestamp_complete transaction_status
transaction_id tw_id tw sender_id recipient_id amount timestamp_insert timestamp_start timestamp_complete transaction_status
User Table Columns:
用户表列:
u_id, name
1 个解决方案
#1
You need to join twice, thus:
您需要加入两次,因此:
SELECT ta.amount, ta.recipient_id, ta.sender_id, ta.timestamp_insert, sender.name as Sender, recipient.name as Recipient
FROM `transactions` AS ta
JOIN users AS recipient
ON ta.recipient_id=recipient.u_id
JOIN users AS sender
ON ta.sender_id=sender.u_id
WHERE ta.sender_id =111111 OR ta.recipient_id = 111111
LIMIT 0 , 10
#1
You need to join twice, thus:
您需要加入两次,因此:
SELECT ta.amount, ta.recipient_id, ta.sender_id, ta.timestamp_insert, sender.name as Sender, recipient.name as Recipient
FROM `transactions` AS ta
JOIN users AS recipient
ON ta.recipient_id=recipient.u_id
JOIN users AS sender
ON ta.sender_id=sender.u_id
WHERE ta.sender_id =111111 OR ta.recipient_id = 111111
LIMIT 0 , 10