Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将两个表列与一个表列连接起来?_Php_Mysql_Join - Fatal编程技术网

Php 如何将两个表列与一个表列连接起来?

Php 如何将两个表列与一个表列连接起来?,php,mysql,join,Php,Mysql,Join,我有一个mysql表用户 username name --------- ------ u1 abc u2 xyz u3 mrz 另一个是交易 product price buyer seller --------- ------ ------ ------- antivirus 20 u1 u3 e-book 10 u

我有一个mysql表用户

username     name
---------   ------

u1           abc
u2           xyz
u3           mrz 
另一个是交易

product     price      buyer seller
---------   ------    ------ -------

antivirus   20           u1    u3     
e-book      10           u2    u1
我想表现得像你一样

product     price      buyer seller
---------   ------    ------ -------

antivirus   20           abc    mrz     
e-book      10           xyz    abc

我的问题是如何连接这两个表?以及如何显示数据,就像我回显为行['name'],它将为买方和卖方显示相同的名称

选择t.product作为产品,t.price作为价格,u1.name作为买方,u2.name作为卖方 从交易t 在上加入用户u1(t.buyer=u1.username)
加入用户u2 ON(t.buyer=u2.username)

试试这个,它会起作用的:

使用内部联接

 SELECT t1.`product` AS `product`,t1.`price` AS `price`,t2.`name` AS `buyer`,t3.`name` AS `seller` FROM trading t1
JOIN user t2 ON t2.`username`=t1.`buyer`
JOIN user t3 ON t3.`username`=t1.`seller`
输出:


我将在您最后一次回复时回答,因为它不会正确缩进

$result=mysql_query($query); // get the query

if(!$result){
    // if fails, do your things..
}

while($row=mysql_fetch_assoc($result)){
    // get data, i.e: print it ALL ROWS!
    echo $row['seller'];
    echo $row['price'];
    // and more...
}
mysql_free_result($result); // free the resource.

如果我没有误解你的意思,那么你可以用这种方式处理他们的价值观。

这应该是可行的,但你可能想用几句话来解释为什么这样做有效。如果我有1000个像u1这样的用户,会发生什么事。。。。u1000我应该像u1.name那样询问买家吗。。。。u1000作为卖家?不,u1和u2是两次加入的同一个表的不同名称,您应该从第一个交易表检索数据,然后与表用户加入,这样您就得到了买家,另一个与其用户加入,以检索卖家。基本上,你无法在一个单一的连接中完成这一切,因为你永远找不到一个从他自己那里买东西的买家。如何响应这些价值观?这样,第[‘卖家’]、第[‘买家’]、第[‘价格’]行?@user2252617在线上有十亿个教程和示例介绍如何实现它。使用PDO或mysqli。当用户是买家和卖家时,它可以工作,但对我来说,不需要用户名同时匹配买家和卖家。我已经更新了我的帖子。@user2252617,我更新了我的答案,请现在检查。它工作正常。不要鼓励人们使用mysql*\因为它已被弃用,并且将在未来的PHP版本中删除。