Php mysql根据另一个表中的id查询一行中的两个用户名

New*_*der 0 php mysql sql select

我有点新编码,并一直在尝试编写我认为是简单的SQL查询.请帮忙 :)

Table 1: Users
id = user idt
username = user name 

Table 2: Orders
orderid = order id
order_to = user id of person buying 
order_from = user id of person selling
oder_details = text
Run Code Online (Sandbox Code Playgroud)

基本上我想:

"Select Username(from), Username(to), order_details FROM mytables WHERE Order id = 1;" 
Run Code Online (Sandbox Code Playgroud)

并得到结果为1行,我不知道如何继续.我以为我可以用串联或其他东西做到这一点......任何人都可以帮忙吗?

Bad*_*olf 8

您需要使用JOIN将表链接在一起.

SELECT fu.username AS fromUser, tu.username AS toUser, o.order_details
FROM Orders o
INNER JOIN Users fu
ON fu.id = o.order_to
INNER JOIN Users tu
ON tu.id = o.order_from
WHERE o.orderid = '1';
Run Code Online (Sandbox Code Playgroud)

因为您有两个不同的用户需要用户名,所以需要JOIN两次Users表来获取用户的两个用户名.每个表都需要拥有自己的别名,futu允许MySQL区分它们.对于SELECT语句中的列名称也是如此,这样当您使用PHP获取结果时,php可以区分这两个用户名.