1

我对 SQL 很陌生,但昨晚在我的网站上进行实验时碰壁了。我已经尝试了好几个小时了,但没有运气,所以这是我在 Stack Overflow 上的第一篇文章!

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

我有两张桌子:

character_
quest_globals

我需要来自两个表的数据:

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_.id所以quest_globals.charid我猜我用它来加入?

4

3 回答 3

4
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

此外,您可以为列命名,例如:

c.name as char_name, q.name as quest_name

所以,不会那么乱

于 2013-02-19T12:31:06.307 回答
1
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
于 2013-02-19T12:33:06.423 回答
0

查询将是这样的:

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

希望它能解决专栏。

于 2013-02-19T12:46:16.377 回答