0

我对编码有点陌生,并且一直在尝试编写我认为简单的 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 行,我不知道如何进行。我以为我可以通过连接或其他方式做到这一点......有人可以帮忙吗?

4

2 回答 2

9

您需要使用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两次访问 Users 表来获取两个用户的用户名。每个表都需要有自己的别名futu允许 MySQL 区分它们。语句中的列名也是SELECT如此,因此当您使用 PHP 获取结果时,php 可以区分两个用户名。

于 2013-06-24T17:25:34.157 回答
1

您正在寻找一个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.

于 2013-06-24T17:25:15.093 回答