【问题标题】:SQL Order - Two different tables with one same keySQL 顺序 - 具有相同键的两个不同表
【发布时间】:2014-05-09 03:05:48
【问题描述】:

我有两张桌子:

Table A:  ID Items Data Pos
Table B:  ID Apples Oranges Pos

以及我需要从表 A 和 B 中按位置排序的所有结果。 我怎样才能做到这一点? SELECT * FROM Table a and b orderby pos?

所以例如结果应该是这样的:

  1. 来自表 A 的结果,ID 为 1 项目 10 数据 5 和位置 1
  2. 来自表 B 的结果,ID 为 1 苹果 3 橙子 3 和位置 2
  3. 来自表 B 的结果,ID 为 2 项目 4 数据 4 和位置 3
  4. 表 A 中 ID 为 2 Apples 7 Oranges 8 和 Pos 4 的结果

谢谢。

【问题讨论】:

  • 您使用的是什么数据库?请用实际数据库标记问题。

标签: php mysql sql sql-server sqlite


【解决方案1】:

您可以将union allorder by 一起使用:

select ID, Items, Data, Pos
from tableA a
union all
select ID, Apples, Oranges, Pos
from tableB b
order by Pos

这是标准 SQL,因此它适用于您提到的所有数据库。

【讨论】:

  • 谢谢,如果我在 tableA 中有一个额外的列怎么办?然后我的工会向我显示了一个错误。
  • @PlicPl 。 . .在此查询中,列是显式选择的,因此一个表或另一个表中的其他列不会造成问题。所以,不要使用*
  • 如果我需要使用 * 怎么办?也许“加入”会是一个解决方案?
  • @PlicPl 。 . .你永远需要使用*。列出列,使它们相同。在两个不同表上的union 中,使用* 是不好的做法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
相关资源
最近更新 更多