2013-02-11 137 views
0

我有3个表:SQL SELECT查询

users: 

uid int(11) - userid(primary key, auto_increment) 
name varchar(255) 
pass varchar(64) 
created int(11) 

projects: 

pid int(11) ..... 
name varchar(150) 
description varchar(255) 
created int(11) 

users_projects: 

uid int(11) - user id 
pid int(11) - product id 

什么是查询:通过显示名称与特定名称的用户排序的项目(名称和说明)?

这是我到目前为止有:

SEECT name,description FROM projects ORDER BY name ASC 
+1

你正在使用哪些DBMS?甲骨文? Postgres的? – 2013-02-11 11:57:55

+0

SQLyog的社区 – emcee22 2013-02-11 11:58:57

+0

SQLyog的是不是一个DBMS。 – 2013-02-11 12:27:04

回答

2
SELECT a.*, b.* 
FROM users a 
     INNER JOIN users_projects b 
      ON a.uid = b.uid 
     INNER JOIN projects c 
      ON b.pid = c.pid 
ORDER BY a.Name ASC 

为了进一步获得更多的知识有关加入,请访问以下链接:

+0

非常感谢。 – emcee22 2013-02-11 12:00:57

+0

欢迎您':D' – 2013-02-11 12:03:32

+0

这些可视化表示需要重视他们一些注意事项。 – Strawberry 2013-02-11 12:10:46

2

看起来你只需要加入表格。这里@Name是一个参数,包含用户的名字,你想要项目的详细信息:

SELECT projects.Name, 
     projects.Description 
FROM projects 
     INNER JOIN users_projects 
     ON projects.pid = users_projects.pid 
     INNER JOIN Users 
     ON users_projects.UId = Users.UId 
WHERE Users.Name = @Name 
ORDER BY projects.Name ASC