私が本の2つのテーブルとそれらの対応する版の2つのテーブルを持っているとしましょう。
次のようなクエリがあります。
SELECT TOP 10 * FROM
(SELECT hbID, hbTitle, hbPublisherID, hbPublishDate, hbedID, hbedDate
FROM hardback
LEFT JOIN hardbackEdition on hbID = hbedID
UNION
SELECT pbID, pbTitle, pbPublisher, pbPublishDate, pbedID, pbedDate
FROM paperback
Left JOIN paperbackEdition on pbID = pbedID
) books
WHERE hbPublisherID = 7
ORDER BY hbPublishDate DESC
最初の2冊のハードカバーおよび/またはペーパーバックの本の5つのエディションがある場合、このクエリは2冊の本のみを返します。TOP 10
ただし、実際に返却された本のレコード数にのみ適用したい。実際の10冊の本を選択しても、関連するすべての版のレコードを取得する方法はありますか?
関連する場合は、一時テーブルを作成および削除するためのデータベース権限がありません。
読んでくれてありがとう!
アップデート
明確にするために:ペーパーバックの表には、ペーパーバック版の関連する表があります。ハードカバーの表には、ハードカバー版の関連する表があります。ハードカバーとペーパーバックのテーブルは、(願わくば!)それらが一緒に表示されるのを見るユーザーを除いて、互いに関連していません。