需要有关mysql查询的帮助

时间:2011-05-03 06:50:48

标签: mysql

我的付款表格具有以下结构。

**Payments**
id
name
created_by - user_id
closed_by - user_id

**Users**
user_id
name
surname

显示已创建和关闭付款文件的用户的姓名和姓氏的最佳方式是什么。

我认为这可行的唯一方法是使用子查询(created_by,closed_by字段)谢谢

3 个答案:

答案 0 :(得分:3)

试试这个:

SELECT p.id, p.name, 
CONCAT (u1.name,' ', u1.surname) created,
CONCAT (u2.name,' ', u2.surname) closed,
FROM payments p INNER JOIN users u1
ON p.created_by = u1.user_id
INNER JOIN users u2
ON p.closed_by = u2.user_id

已编辑:如果您想要分名和姓氏

SELECT p.id, p.name, 
u1.name created_name, u1.surname created_surname,
u2.name closed_name, u2.surname closed_surname,
FROM payments p INNER JOIN users u1
ON p.created_by = u1.user_id
INNER JOIN users u2
ON p.closed_by = u2.user_id

答案 1 :(得分:1)

严格加入,我认为你可以在where子句中使用连接

select name, surname
from 
    payments p, users u
where
    u.user_id = p.created_by
    and u.user_id = p.closed_by

答案 2 :(得分:0)

您可以多次加入单个表,但必须使用别名。

select
p.*,cr.*,cl.*
from
payments p
join users cr
on p.created_by = cr.user_id
join users cl
on p.closed_by = cl.user_id