MySQL Select,多个表中具有相同名称的列,由具有相同名称的另一列排序

ina*_*ina 10 php mysql

我正在尝试选择具有特定列名称的行,并按其他列名称排序.

这是我的问题,进入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,但他们没有足够的先进例子......然后还有太高级的,我仍然难倒)

Ava*_*ava 7

如果您希望同时对所有表进行排序(表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中所示)