首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接两个表,这样我就可以使用ORDER BY

连接两个表,这样我就可以使用ORDER BY
EN

Stack Overflow用户
提问于 2013-02-19 20:28:53
回答 3查看 60关注 0票数 1

我是SQL的新手,但是昨天晚上在我的网站上做实验的时候碰壁了。我已经尝试了几个小时了,但没有成功,所以这是我在Stack Overflow上的第一篇帖子!

我的问题是,我正在尝试对结果表进行排序,但是我需要排序的是来自与主数据不同的查询。所以我有一个数据表可以很好地输出,但是我不能对我想要的字段使用ORDER BY,因为它来自不同的查询。

我有两张表:

代码语言:javascript
复制
character_
quest_globals

我需要这两个表中的数据:

代码语言:javascript
复制
character_.id
character_.name
character_.class
character_.level

quest_globals.charid   (Same value as character_.id)
quest_globals.name
quest_globals.value

Ordered by: quest_globals.value

我想连接这两个表,这样我就可以按我喜欢的方式对结果进行排序。我需要为此使用UNION或JOIN吗?

character_quest_globals有一个共同的字段,因为character_.idquest_globals.charid是一样的,所以我猜我是用这个来加入的?

EN

回答 3

Stack Overflow用户

发布于 2013-02-19 20:31:06

代码语言:javascript
复制
SELECT c.id, c.name, c.class, c.level, q.name, q.value 
FROM character_ c
LEFT JOIN
  quest_globals q
ON 
  q.charid  = c.id 
ORDER BY q.value

此外,您还可以为列命名,如下所示:

代码语言:javascript
复制
c.name as char_name, q.name as quest_name

所以,它就不会这么乱了

票数 4
EN

Stack Overflow用户

发布于 2013-02-19 20:33:06

代码语言:javascript
复制
SELECT character_.id,character_.name,character_.class,character_.level,quest_globals.name,quest_globals.value
FROM character_
LEFT JOIN quest_globals ON quest_globals.charid  = character_.id 
ORDER BY quest_globals.value
票数 1
EN

Stack Overflow用户

发布于 2013-02-19 20:46:16

查询将如下所示:

代码语言:javascript
复制
SELECT character_.id
character_.name
character_.class
character_.level
FROM character_
INNER JOIN quest_globals
ON character_.id=quest_globals.charid
ORDER BY quest_globals.value

希望它能解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14957511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档