Birden çok ilişkiye sahip iki tablo var ve 'çok' tablosundaki belirli bir satırı bir satırdaki bir satıra kadar takip eden bir sorguyu bir araya getirmek istiyorum. 'bir masa.SQL: birleştirilmiş bir tabloyu filtrele
kullanıcı tablosu:
╔════╦══════════════╦
║ id ║ name ║
╠════╬══════════════╬
║ 1 ║ user 1 ║
║ 2 ║ user 2 ║
║ 3 ║ user 3 ║
║ 4 ║ user 4 ║
╚════╩══════════════╩
Mesajlar tablosu: Ben kullanıcı için en son mesajı almak için tek bir iletilere kullanıcıdan katılmak gerçekleştirmeye çalışıyorum
╔════╦══════════════╦═══════════╦═════════╗
║ 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 ║
╚════╩══════════════╩═══════════╩═════════╝
. kullanıcı 2 'test mesajı' olurdu, kullanıcı 3 'başka bir test' olurdu. Kullanıcı 1, anlayamadığım bir şey - Kullanıcı 1 için bir satırın, en son tarihe sahip olduğu gerçeğine dayanarak, 'dünya' döndürdüğünü, ancak gerçekleştirme yeteneğine sahip bir birleştirmeyi görmüyorum. birleştirilmiş tablo üzerinde filtreleme. Böyle
Bunu alt sorgular veya pencere işlevleri kullanarak oldukça kolay yapabilirsiniz, ancak sözdizimi, kullanmakta olduğunuz SQL'in türüne tamamen bağlıdır. Bunu hangi dil ile yapmaya çalışıyorsun? –
Hangi DBMS'yi kullanıyorsunuz? –
SQL Server 2012'deyim ... Size önerdiğim gibi, 'pencere fonksiyonları' na bakıyorum, Rodkey ve web'de gördüğüm açıklamaları ve aşağıdaki önerileri temel aldım, bence cevap bu. – user856358