I have a database that contains transaction records. Each record belongs to a chain of transactions, and these have an TCID (Transaction Chain ID) that they share. Each transactions contains a sender and a receiver. What I need to do is check to see if the final receiving user in a chain is ever the same as the first sender in another chain.
Currently, my MySQL query returns records where the final receiver is in any transaction of another chain, not just the first. I need to limit this strictly to final receiver and first sender.
I tried using group by, order by, and limit 1, but these are applied after the query finds some records. Here’s the query I had tried so far:
SELECT TCID FROM transactions WHERE senderUID = '$receiverUID' GROUP BY TCID LIMIT 1
Anyone know of a way that I can search only the senderUID of the first (lowest TID) record in a group (TCID)?
Thanks for your help!
This should hopefully get you in the right direction –
So as simple example I have the following table-
And so if I set $receiverUID = 1, I get 2 rows where senderUID was the first in a TCID group (1,9), and 3 rows where that senderUID was the receiverUID in a TCID group (4,7,8)
And you could add a
LIMIT 1if you wanted to only get 1 row where the senderUID was the first in a TCID group (1)/(4,7,8)Same idea if I set $receiverUID = 2 (3,11)/(6,10)
and with
LIMIT 1(3)/(6,10)