我对编码有些陌生,一直在尝试编写一个我认为简单的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
用户表两次才能获得两个用户的用户名。每个表都需要有自己的别名fu
和tu
,以便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.
我将把它作为一个练习来学习如何JOIN
和order_from
。