【发布时间】:2016-11-03 19:45:42
【问题描述】:
我有一个三表 Userregistration、paytransaction 和 requesttransaction,在其中我必须从具有相同用户 ID 和手机号码的所有表中获取数据,在这些表中我得到了 fromuser 和 touser 的以下详细信息,例如 fromname、fromnumber、fromemail 和详细信息touser 是 toname,tonumber 但我也无法获取用户的电子邮件 ID,它会根据联系号码找到。下面是我的表结构。
用户注册
id contactname mobile_no email
.................................................
5 varun 8817 abc@gmail.com
112 chetan 1234 def@gmail.com
支付交易
id userid fromname fromnumber tocontactname tocontactnumber status
...........................................................................
1 5 varun 8817 chetan 1234 pay
请求交易
id userid fromname fromnumber tocontactname tocontactnumber status
...........................................................................
1 112 chetan 1234 varun 8817 request
2 112 chetan 1234 ankit 123 request
如果用户在用户表中注册,我想要此输出,然后获取电子邮件 ID,否则为空白
id userid fromname fromnumber fromemail tocontactname tocontactnumber toemail status
...........................................................................
1 5 varun 8817 abc@gmail.com chetan 1234 def@gmail.com pay
3 112 chetan 1234 def@gmail.com varun 8817 abc@gmail.com request
4 112 chetan 1234 def@gmail.com ankit 123 request
此处 ankit 用户未注册,因此他的 toemail id 为空白,我使用了以下查询,但我无法根据 cotactnumber 找到 toemailid。我尝试了以下查询,但我无法获取 toemail id。
SELECT Userregistration.`id`,paytransaction.`id`,paytransaction.`userid`,paytransaction.`fromname`,paytransaction.`fromnumber`,Userregistration.email as fromemail,paytransaction.`contactname` as toname,paytransaction.`contactnumber` as tonumber FROM `paytransaction` INNER JOIN Userregistration ON paytransaction.`userid`=Userregistration.`id` UNION SELECT Userregistration.`id`,requesttransaction.`id`,requesttransaction.`userid`,requesttransaction.`fromname`,requesttransaction.`fromnumber`,Userregistration.email as fromemail,requesttransaction.`contactname` as toname,requesttransaction.`contactnumber` as tonumber FROM `requesttransaction` INNER JOIN Userregistration ON requesttransaction.`userid`=Userregistration.`id`
【问题讨论】: