MySQL从一行中的一个表中获取多个结果

MySQL从一行中的一个表中获取多个结果,mysql,Mysql,这两个表分别是“成本”和“联系人”。所有卖家和买家的名字都在“联系人”表中。通过下面的查询,我检索每个项目的卖家和买家id,但我想从“联系人”表中获取他们的姓名 但我想从联系人表中获取卖家和买家的姓名 SELECT costs.id as ID, costs.idContactPayedBy, costs.idContactPayedTo FROM costs WHERE costs.idbuilding=286 SELECT costs.id as ID, contacts.las

这两个表分别是“成本”和“联系人”。所有卖家和买家的名字都在“联系人”表中。通过下面的查询,我检索每个项目的卖家和买家id,但我想从“联系人”表中获取他们的姓名

但我想从联系人表中获取卖家和买家的姓名

SELECT 
costs.id as ID,
costs.idContactPayedBy,
costs.idContactPayedTo

FROM costs

WHERE 
costs.idbuilding=286
SELECT 
costs.id as ID,
contacts.lastname as seller,
contacts.lastname as buyer

FROM costs , contacts

WHERE 
costs.idbuilding=286
and costs.idContactPayedBy = contacts.id
and costs.idContactPayedTo = contacts.id
所以期望的结果是这样的

ID  Seller   Buyer
21  jackson  Brown
29  Bush     wilson
注1:仅当
idContactPayed[By/To]
列是必需的(
非空
)时,才使用
内部联接。如果这些列允许空值,则应使用
左外部联接
。在我看来,这两列都应该是强制性的

注2:就风格而言:请避免:
来自表1 a,表2 b,其中

SELECT 
c.id as ID,
cntby.lastname as seller,
cntto.lastname as buyer

FROM costs AS c 
INNER JOIN contacts AS cntby ON c.idContactPayedBy = cntby.id
INNER JOIN contacts AS cntto ON c.idContactPayedTo = cntto.id
WHERE c.idbuilding=286