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


Php mysql Query two usernames in one row based on id from another table

我对编码有些陌生,一直在尝试编写一个我认为简单的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

基本上我想:

"Select Username(from), Username(to), order_details FROM mytables WHERE Order id = 1;" 

如果结果是1行,我不知道如何继续。我想我可以通过串联或其他方式来完成。。。有人能帮忙吗?

您需要使用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';

因为有两个不同的用户需要用户名,所以需要JOIN用户表两次才能获得两个用户的用户名。每个表都需要有自己的别名futu,以便MySQL区分它们。SELECT语句中的列名也是如此,因此当您使用PHP获取结果时,PHP可以区分这两个用户名。

您正在寻找JOIN。这可以通过关键字或WHERE子句来完成。例如,

SELECT * FROM Orders JOIN Users ON Orders.order_to=Users.id

文档可在此处找到:http://dev.mysql.com/doc/refman/5.0/en/join.html.

我将把它作为一个练习来学习如何JOINorder_from