Haftungsausschluss: Meine SQL-Kenntnisse sind grundlegend, um es gelinde auszudrücken.Wie kann ich ähnliche Daten aus zwei separaten Tabellen gleichzeitig abrufen?
Angenommen, ich habe zwei ähnliche Datentypen in verschiedenen Tabellen der gleichen Datenbank.
hbID | hbTitle | hbPublisherID | hbPublishDate
Die zweite Tabelle aufgerufen wird Taschenbuch und seine Felder halten ähnliche Daten, aber die Felder sind unterschiedlich benannt:
Die erste Tabelle gebundene Ausgabe und die Felder sind wie folgt aufgerufen wird
pbID | pbTitle | pbPublisherID | pbPublishDate
Ich brauche die 10 neuesten h abrufen ardback und broschierte Bücher, in denen der Publisher-ID 7. ist
Das ist, was ich bisher habe:
SELECT TOP 10
hbID, hbTitle, hbPublisherID, hbPublishDate AS pDate
bpID, pbTitle, bpPublisherID, pbPublishDate AS pDate
FROM hardback CROSS JOIN paperback
WHERE (hbPublisherID = 7) OR (pbPublisherID = 7)
ORDER BY pDate DESC
Dies gibt sieben Spalten pro Zeile, mindestens drei davon für das sein kann oder auch nicht falscher Verlag. Möglicherweise vier, abhängig vom Inhalt von pDate
, was mit ziemlicher Sicherheit ein Problem sein wird, wenn die anderen sechs Spalten für den richtigen Herausgeber sind!
In dem Bemühen, eine frühere Version dieser Software zu veröffentlichen, lief ich zwei separate Abfragen 10 Datensätze zu holen jeweils, sortierte sie dann nach Datum und verworfen den Boden zehn, aber ich nur wissen es eine elegantere Art und Weise sein muss es zu tun!
Irgendwelche Vorschläge?
Nebenbei: Ich überprüfte, was ich hier geschrieben hatte, als mein Mac plötzlich eine Kernel-Panik erlebte. Erneut gestartet, meine Tabs wieder geöffnet und alles, was ich eingegeben habe, war noch hier! Stack Exchange-Standorte sind genial :)
Danke für deine Antwort; Ich versuche, es zur Arbeit zu bringen, aber Syntaxfehler zu bekommen. Ich bin mir sicher, dass es meine Schuld ist, ich wollte nur nicht, dass du denkst, dass ich deine Antwort ignoriere, während ich versuche, es zu beheben ... – Kalessin
Welche Syntaxfehler bekommst du? Ich sehe nichts, das für SQL Server 2000 fraglich wäre. –
Ich erhalte 'falsche Syntax nahe dem Schlüsselwort 'WERE''. Ich gehe jetzt für das Wochenende nach Hause, ich werde versuchen, bis Montagmorgen nicht darüber nachzudenken :) – Kalessin