我正在尝试选择具有特定列名称的行,并按其他列名称排序.
这是我的问题,进入N个简化表:
table 1: id, username, datetime, comment
table 2: id, username, datetime, vote
.
.
.
table N: id, username, datetime, bought
我希望能够username='Some Name'
在所有N个表中选择按日期时间排序的所有行.
-
顺便说一下,有没有人知道学习和练习高级SQL的好书或资源?(尝试过SQLZoo,但他们没有足够的先进例子......然后还有太高级的,我仍然难倒)
如果您希望同时对所有表进行排序(表3中的较新记录显示在表2中的某些表之前,等等)
跨多个表执行此操作的最简单方法是使用UNION:
(SELECT id, username, datetime FROM table 1 WHERE username = 'Some Name')
UNION
(SELECT id, username, datetime FROM table 2 WHERE username = 'Some Name')
UNION
(SELECT id, somethingelse AS username, date as datetime FROM table 3 WHERE somethingelse = 'Some Name')
....
ORDER BY datetime DESC
Run Code Online (Sandbox Code Playgroud)
请注意,当您使用这样的联合时,所有的select语句都应返回相同数量的列并命名相同(您可以使用别名,如我在上面的表3中所示)
归档时间: |
|
查看次数: |
31307 次 |
最近记录: |