[英]call same primary key used on two foreign keys to display different rows/results
Users can be both senders and receivers of a letter (they send a letter, and can respond to a letter).用户既可以是信件的发送者,也可以是接收者(他们发送一封信件,并且可以回复一封信件)。 As such, users are all stored in my tblMembers distinguished by mem_id_PK.
因此,用户都存储在我的 tblMembers 中,由 mem_id_PK 区分。 However, I want to get out the usernames of the users as well.
但是,我也想获取用户的用户名。
My SQL below:我的SQL如下:
select tblLetters.letter_id_PK,
tblLetters.letter_body,
tblLetters.letter_createdDate,
tblLetters.FK_member_id_writer AS 'Sender',
tblLetters.FK_member_id_adviser AS 'Receiver',
tblMembers.mem_username AS 'Sender Name',
tblMembers.mem_username AS 'Receiver Name'
from tblLetters
inner join tblMembers on tblLetters.FK_member_id_writer = tblMembers.mem_id_PK
-- inner join tblMembers on tblLetters.FK_member_id_adviser = tblMembers.mem_id_PK
Returns:返回:
letter_id_PK letter_body letter_createdDate Sender Receiver Sender Name Receiver Name
1 Hello how are you? 2020-11-17 16:57:24.420 3 2 Sally Sally
Expecting:期待:
letter_id_PK letter_body letter_createdDate Sender Receiver Sender Name Receiver Name
1 Hello how are you? 2020-11-17 16:57:24.420 3 2 Sally John
My assumption is setting my FK's as mem_username but I haven't been able to do it distinctively as seen.我的假设是将我的 FK 设置为 mem_username,但我无法像所见的那样与众不同。
You need to use table name alias:您需要使用表名别名:
select tblLetters.letter_id_PK,
tblLetters.letter_body,
tblLetters.letter_createdDate,
tblLetters.FK_member_id_writer AS 'Sender',
tblLetters.FK_member_id_adviser AS 'Receiver',
sender.mem_username AS 'Sender Name',
receiver.mem_username AS 'Receiver Name'
from tblLetters
inner join tblMembers as sender on
tblLetters.FK_member_id_writer = sender.mem_id_PK
inner join tblMembers as receiver on
tblLetters.FK_member_id_adviser = receiver.mem_id_PK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.