ページングされた結果、つまりプロパティというテーブルの2番目の5つのレコードを返す必要があります。これは単独でこのクエリで動作します。SQL Serverでこのクエリに必要な結合
SELECT
Property_ID,
Property_Type,
Address_Line,
Area,
Postcode,
Weekly_Rate
FROM
dbo.Properties
WHERE
Area LIKE '%" + value + "%'
ORDER BY
Property_ID
OFFSET " + (start*end) + " ROWS
FETCH NEXT " + end + " ROWS ONLY"
上記のコードはC#を付けて記述しています。
また、ページングされたサブセットで返された各レコードを参照するImagesテーブルの最初のイメージIDが必要です。
私はFULL OUTER JOINを試しましたが、おそらくプロパティごとに複数のイメージがあるため、予想されたものが返されませんでした。
これに対する解決策は素晴らしいと思います!
おかげ
これはほとんど仕事に思えるが、それはエラーを返すだ:
SELECT
dbo.Properties.Property_ID, Property_Type, dbo.Images_Table.[URL]
FROM
dbo.Properties p
OUTER APPLY
(SELECT TOP 1 i.*
FROM dbo.Images_Table i
WHERE i.Property_ID = p.Property_ID
ORDER BY i.Image_ID) i
WHERE
p.Area LIKE '%po%'
ORDER BY
p.Property_ID
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY
は、これはエラーが返されます。
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "dbo.Properties.Property_ID" could not be bound.Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "dbo.Images_Table.URL" could not be bound.
'Properties'テーブルと' Images'テーブルの関係は何ですか?テーブルのスキーマは見やすいでしょう。 –
PROPERTY_IDは画像テーブル – Kieran