2016-03-03 48 views
0

enter image description here获取结果来自两个表的公共密钥

所以我有是一些其他表的外键的公共密钥fk_exid两个表。请帮我写一个查询来获取图像中显示的结果。

我想:

SELECT 
    payers.mid as payer_id, 
    payers.name as payer_name, 
    payers.amount as payer_amount, 
    payees.mid as payee_id, 
    payees.name as payee_name 
FROM 
    payers 
LEFT OUTER JOIN payees ON payees.fk_exid = payers.fk_exid 
WHERE 
    payers.fk_exid = 1 

但一直重复的值。我不想要一个完整的JOIN提前:)

感谢你

+0

什么关于'fk_exid'连接两个表? – Jaco

+1

Ddi你真的做了任何研究或尝试自己的任何东西?这是一个非常基本的任务,应该有大量现有的例子。 – Ageonix

+0

我试过这个.. SELECT payers.mid as'payer_id',payers.name as'payer_name',payers.amount as'payer_amount',payees.mid as'payee_id',payees.name as'payee_name' FROM纳税人 LEFT OUTER JOIN收款人ON payees.fk_exid = payers.fk_exid WHERE payers.fk_exid = 1 却一直重复值 我不想一个完整的JOIN – Himanshu

回答

0

这似乎是可选的一一对应的关系,结果是左从付款人加盟收款人

,请尝试以下

SELECT * FROM纳税人P1左外连接P2 收款人上p1.fk_exid = p2.fk_exid

+0

这将给我4×3元组重复收款人 – Himanshu

+0

如果您使用完全连接,则不会发生4 * 3,但使用左连接将从左表中获得所有结果,并在右侧获得匹配结果,如果没有数据正确它将得到空值,这是您期望的结果,所以请试试看:D –

+0

QUERY:SELECT payers.fk_exid,payers.mid as payer_id',payers.name as payer_name',payees.mid as 'payee_id',payees.name如'payee_name' FROM付款人 LEFT OUTER JOIN受款人ON payees.fk_exid = payers.fk_exid WHERE payers.fk_exid = 6 结果:http://www.hostpic.org/images/ 1603031920130097.png – Himanshu