根据其外键所属的行的值对联结 table 的结果进行排序
Ordering the results from a junction table based on values of the row its foreign key belongs to
我有三个表用于多对多:作者、作者身份、书籍。我想 select 作者的行,并根据该行所属的作者按字母顺序排列。
示例:
-- Authors --
ID Name
1 Peter
2 Gregory
3 Daniel
-- Authorships--
ID AuthorId BookId
1 1 1
2 2 1
3 3 1
-- Books--
ID Name
1 Foobook
我想写一个 select 语句,returns 作者身份中属于特定书籍的所有行然后按作者姓名对结果进行排序。
所以像这样:
SELECT * FROM Authorships WHERE BookId = 1 ORDER BY (Authors.Name???);
除非我需要订购结果。
我理解这个问题可能看起来很愚蠢,因为它 workaround/inefficient 的性质,但我正在处理大量遗留代码,不允许真正更改任何其他内容。
谢谢。
这会起作用:
SELECT auth.* FROM Authorships auth, Authors au, Books bk WHERE auth.BookId = bk.ID and auth.AuthorId = au.ID ORDER BY au.Name
SQLFiddle Link:
SQLFiddle
我有三个表用于多对多:作者、作者身份、书籍。我想 select 作者的行,并根据该行所属的作者按字母顺序排列。 示例:
-- Authors --
ID Name
1 Peter
2 Gregory
3 Daniel
-- Authorships--
ID AuthorId BookId
1 1 1
2 2 1
3 3 1
-- Books--
ID Name
1 Foobook
我想写一个 select 语句,returns 作者身份中属于特定书籍的所有行然后按作者姓名对结果进行排序。
所以像这样:
SELECT * FROM Authorships WHERE BookId = 1 ORDER BY (Authors.Name???);
除非我需要订购结果。 我理解这个问题可能看起来很愚蠢,因为它 workaround/inefficient 的性质,但我正在处理大量遗留代码,不允许真正更改任何其他内容。
谢谢。
这会起作用:
SELECT auth.* FROM Authorships auth, Authors au, Books bk WHERE auth.BookId = bk.ID and auth.AuthorId = au.ID ORDER BY au.Name
SQLFiddle Link: SQLFiddle