-1
私は多対多関係を持つ2つのテーブル(ブックス、著者)を持っています。 著者のの書籍を検索するには、SQL文が必要です。は、著者/書籍によってソートされています。重要なことは、ページ番号(オフセット...フェッチin sql)でを取得する必要があることです。 テーブルの結合時に結果に重複があり(オフセット)、オフセット/フェッチをこの結果に使用できないという問題の1つです。結果を並べ替える必要がある別の問題(サブページではなく、すべての書籍)。ページネーションとSQL文とソート(テーブルを結合する)
私は1つのアイデアがあります(それは著者名でソート図書を取得し、ページネーションを含む)に
select b.id, b.title, a.name from Books b inner join Books_Authors ba
on ba.bookID = b.id inner join Authors a
on ba.authorID = a.id
where a.name in (select name from Authors order by name offset 9 rows fetch next 3 rows only)
order by a.name
をしかし、私は、それは効率的な方法ではないと思います。
使用するMSSSのバージョンに応じて、この方法を指定します。このリンクを見てください:http://stackoverflow.com/a/5620802/100283 –
@マーク・クラム、私の問題は、例えば、3冊の書籍(ページサイズ= 3の場合) )。だから私は2つのテーブルに参加する必要がありますが、その結果には書籍の複数の著者が含まれているため、結果のページングに使用すると(例:OFFSET ... FETCH)私は3冊この本に3人の著者がいる場合は1冊の本を手に入れます)。 – Ddd
次に、クロステーブルを使用して、ブックテーブルから必要な行を取得する必要があります。 –