Jest to związane z tym pytaniem: łączenie wielu tabel powoduje zduplikowanie wierszy
Mam dwa stoły, do których dołączam. Dzielą klucz. Tabela osób ma jedną nazwę na klucz podstawowy, ale tabela e-mail zawiera wiele wiadomości e-mail na identyfikator osoby. Chcę pokazać tylko pierwszy e-mail na osobę. Obecnie otrzymuję wiele wierszy na osobę, ponieważ mają wiele e-maili. Korzystam z SQL-Server 2005.
EDYCJA: To jest T-SQL. Pierwszy e-mail to dosłownie pierwszy wiersz e-maila na osobę.
Edycja 2: Pierwszy e-mail, jak widzę, byłby pierwszym wierszem e-maila, który pojawia się w złączeniu, gdy SQL działa przez zapytanie. Nie ważne, który e-mail się pojawi. Tyle, że nie pokazuje się więcej niż jeden e-mail. Mam nadzieję, że to wyjaśni.
Table1: Person
Table2: Email
Select Person.PersonName, Email.Email
From person
left join on Person.ID=Email.PersonId;
sql-server
sql-server-2005
greatest-n-per-group
normandantzig
źródło
źródło
Odpowiedzi:
źródło
A
. Ta tabela ma 3 kolumny (PersonName, Email, RN) i poza nawiasami, możesz używać jejA.Email
tak samo, jaktablename.columnname
każdej innej tabeli w kodzie.Użyłbym do tego zewnętrznego zgłoszenia, uważam to za bardziej czytelne.
źródło
Ponieważ nie ma znaczenia, który e-mail się wyświetla. Myślę, że poniższy jest bardzo bezpośredni.
źródło
źródło