SELECT a.*,
b.*,
b.id AS user_id,
a.id AS group_id
FROM groups a,
users b
WHERE a.group_leader_id = b.id
回答
显示谁是一群
SELECT a.*, b.*,
b.id AS user_id, -- use an alias for users.id
a.id AS group_id -- use an alias for groups.id
FROM groups a, -- alias table groups as 'a'
users b -- alias table users as 'b'
WHERE a.group_leader_id = b.id -- show only those users who are a leader of a group, and link them to that group
据我,你的查询可以进行优化,以这种的领导者所有群体,只有那些用户:
SELECT a.*, b.*, b.id AS user_id, a.id AS group_id
FROM groups a
INNER JOIN users b ON a.group_leader_id = b.id
当你说'优化'时,你的意思是显式连接比隐式连接快吗? – Owen 2011-03-01 11:52:47
这取决于。如果您使用的是SQL Server,则答案为“是”。原因在于“ON”子句在“WHERE”块之前执行。对于最佳实践使用,我强烈建议使用显式连接“WHERE”子句。 – 2011-03-01 12:52:20
查看为两个查询创建的执行计划。您可能会发现优化程序已将“WHERE”连接重写为INNER JOIN语法。但是,两种替代方法都是完全有效的ANSI语法。但我也会说,最好使用明确的JOIN样式。 – 2011-03-01 13:31:12
这意味着从2个表格中挑选出组长(没有说明详细信息),其中B列出了组长,A组有用户的详细信息。
SELECT a.*, b.*, b.id //select all columns from a, b and id from table b with alias user_id
AS user_id, a.id // id from table a with alias group_id
AS group_id
FROM groups a, users b //from tables groups and users with aliases a and b
WHERE a.group_leader_id = b.id //where group_leader_id from groups = id from users.
该声明是两个表组和用户组之间的连接组的外键。
所以我会这样说: 显示组长的用户信息(包含user_id和group_id的冗余重命名)。
列出所有组和他们的领导。
SELECT
a.*,
b.*,
b.id AS user_id,
a.id AS group_id
FROM
groups a
INNER JOIN
users b
ON
a.group_leader_id = b.id
你为什么把它转换成一个'OUTER'加入? Q中的声明是内部JOIN。 – 2011-03-01 12:10:49
@Martin你说得对,我犯了一个错误。我纠正了我的答案。 – Branimir 2011-03-01 12:28:38
给我从组中的所有列+的所有列从用户+重命名b.id为USER_ID +重命名a.id从组中的所有行GROUP_ID那里是从团体到用户的匹配。
- 1. 请解释这个jQuery语句
- 2. 解释这个MySQL语句
- 3. 解释这个SQL查询用简单的英语
- 4. 请解释这个语法
- 5. T-SQL IF语句解释
- 6. 添加WHERE子句这条SQL语句
- 7. 解释这些选择语句!
- 8. 请解释这个PHP语法
- 9. 请解释这个c + +语法
- 10. <!doctype>的概念..请用普通英语解释
- 11. 能否详细向我解释一下这个PL/SQL语句?
- 12. 任何人都可以用英语向我解释这个吗?
- 13. NLP检测英语条件语句
- 14. 语法解释请
- 15. 请解释这个删除前100名的SQL语法
- 16. 如何让这条SQL语句
- 17. 如何编写这条SQL语句?
- 18. 防止SQL注入这条语句
- 19. 这条SQL语句有什么问题
- 20. 这条sql语句有什么问题
- 21. 如何缩短这条SQL语句?
- 22. 这条SQL语句有什么问题?
- 23. 这条SQL语句有什么问题?
- 24. 这条SQL语句产生了什么?
- 25. 英文解释,以Prolog的
- 26. SQL条件语句?
- 27. 两条sql语句
- 28. SQL条件语句
- 29. SQL语句条件
- 30. SQL条件语句
弗林特 - 我已经重新格式化代码在你的问题。这将有助于您更好地了解其结构。 – eumiro 2011-03-01 09:50:06
啊,它在重新格式化时变得更清晰了! – Owen 2011-03-01 11:50:18