Ich muss paginierte Ergebnisse zurückgeben, d. H. Die zweiten fünf Datensätze aus einer Tabelle namens properties. Dies funktioniert mit dieser Abfrage allein:Welcher Join für diese Abfrage in SQL Server benötigt wird
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"
Der obige Code wird mit C# hinzugefügt geschrieben.
Aber ich brauche auch die erste Image ID aus der Tabelle Images, die auf jeden Datensatz verweist, der in der paginierten Teilmenge zurückgegeben wird.
Ich versuchte einen FULL OUTER JOIN und es gab nicht zurück, was erwartet wurde, vielleicht weil es mehr als ein Bild pro Eigenschaft gibt.
Jede Lösung wäre großartig!
Dank
Dies scheint fast zu arbeiten, aber es ist ein Fehler zurückgegeben:
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
Dies ist der Fehler zurückgegeben:
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.
Welcher Zusammenhang besteht zwischen der Tabelle 'Properties' und der Tabelle' Images'? Tabellenschemas wären gut zu sehen. –
PROPERTY_ID ist ein Fremdschlüssel in der Tabelle Bilder – Kieran