Ich habe zwei Tabellen, die eine eins-viele Beziehung haben, und ich möchte eine Abfrage, die eine Regel folgt, um eine bestimmte Zeile in der 'viele' Tabelle zu einer Zeile in der 'ein Tisch.SQL: filter eine verbundene Tabelle
Benutzertabelle:
╔════╦══════════════╦
║ id ║ name ║
╠════╬══════════════╬
║ 1 ║ user 1 ║
║ 2 ║ user 2 ║
║ 3 ║ user 3 ║
║ 4 ║ user 4 ║
╚════╩══════════════╩
Nachrichten Tabelle:
╔════╦══════════════╦═══════════╦═════════╗
║ id ║ Text ║ user_id ║ date ║
╠════╬══════════════╬═══════════╬═════════╣
║ 1 ║ Hello ║ 1 ║ 3/31 ║
║ 2 ║ World ║ 1 ║ 4/1 ║
║ 3 ║ Test message ║ 2 ║ 4/2 ║
║ 4 ║ Another test ║ 3 ║ 4/4 ║
╚════╩══════════════╩═══════════╩═════════╝
Ich versuche, eine einzige von Benutzer zu Meldungen kommen auszuführen, um die jüngste Nachricht für den Benutzer zu erhalten. Benutzer 2 hätte eine Testnachricht, Benutzer 3 hätte einen anderen Test. Benutzer 1 ist derjenige, den ich nicht herausfinden kann - Ich hätte gerne eine Zeile für Benutzer 1 zurückgegeben "Welt", basierend auf der Tatsache, dass es das neueste Datum hat, aber ich sehe keine Verknüpfung, die die Fähigkeit zu erfüllen hat Filtern auf einer verbundenen Tabelle.
Sie können dies relativ einfach mit Unterabfragen oder Fensterfunktionen tun, aber die Syntax beruht vollständig auf der Art von SQL, die Sie verwenden. Mit welcher Sprache versuchen Sie das? –
Welche DBMS benutzen Sie? –
Ich bin auf SQL Server 2012 ... Ich schaue auf "Fensterfunktionen", wie Sie empfehlen, Rodkey, und basierend auf den Beschreibungen, die ich im Web und die Vorschläge unten sehe, denke ich, dass das die Antwort ist. – user856358