How to get DISTINCT row from INNER JOIN Query in SQL Server

Jakir Hossain

I've been working on a school management project. A teacher has multiple subjects, I need to display only one subject in query but I get all the subjects that a teacher has. Now I need only one record for Teacher 2 (TeacherId =2 has two subjects (English & Math) from the above screenshot's query. English or Math any of them will do.

Query in Text:

SELECT        dbo.Teacher.TeacherId, dbo.Teacher.TeacherName, dbo.Gender.Gender, dbo.Teacher.DOB, ISNULL(dbo.Subject.Subject, 'No Subject') AS Subject, 
                         dbo.Teacher.Contact, dbo.Teacher.Address, dbo.Teacher.Email, dbo.Teacher.Photo
FROM            dbo.Subject INNER JOIN
                         dbo.TeacherSubject ON dbo.Subject.SubjectId = dbo.TeacherSubject.SubjectId RIGHT OUTER JOIN
                         dbo.Teacher INNER JOIN
                         dbo.Gender ON dbo.Teacher.Gender = dbo.Gender.GenderId ON dbo.TeacherSubject.TeacherId = dbo.Teacher.TeacherId

Thanks in advance for helping me a lot.

Thorsten Kettner

The easiest way would be to join just one subject per teacher in the first place. So join with an aggregate:

select
  t.teacherid, 
  t.teachername, 
  g.gender, 
  t.dob, 
  coalesce(s.subject, 'no subject') as subject, 
  t.contact, 
  t.address, 
  t.email, 
  t.photo
from teacher t
join gender g on g.genderid = t.gender
left join 
(
   select teacherid, max(subjectid) as max_subjectid
   from teachersubject
   group by teacherid
) ts on ts.teacherid = t.teacherid
left join subject s on s.subjectid = ts.max_subjectid;

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

How to Delete using INNER JOIN with SQL Server?

From Dev

Get Distinct rows from a result of JOIN in SQL Server

From Dev

Get max() value from distinct row value sql server

From Dev

SQL Server : select distinct records with inner join and where clause

From Dev

SQL Server 2008: Query performance using inner join

From Dev

How to get the desired from the SQL Server Query

From Dev

How to write a SQL query that subtracts INNER JOIN results from LEFT JOIN results?

From Dev

How to apply partition by and row_number() on inner join and case statement in sql query

From Dev

SQL distinct inner join

From Dev

SQL query with distinct values while using inner join

From Dev

Get Distinct rows from a result of JOIN in SQL Server

From Dev

Get max() value from distinct row value sql server

From Dev

Using Inner Join & Distinct in one query

From Dev

Getting error when I'm trying to get data from 3 table using sql INNER JOIN query

From Dev

SQL Server 2008: Query performance using inner join

From Dev

SQL Server : INNER JOIN returning incorrect row

From Dev

How to get the desired from the SQL Server Query

From Dev

How to get DISTINCT row from INNER JOIN Query in SQL Server

From Dev

DISTINCT SQL query with inner joins that omits a column from considerations,

From Dev

how to use with and inner join in Sql server query?

From Dev

How to get distinct values from aggregate method in SQL Server

From Dev

Want to get one row when doing select distinct with inner join

From Dev

How to get the next value from inner join SQL

From Dev

SQL query with distinct values while using inner join

From Dev

Inner join gives undesired result with row number in sql server

From Dev

Query conversion from SQL Server to firebird (UPDATE with inner join)

From Dev

How to take top 1 rows for based on Datetime variation in SQL Server using Inner Join query?

From Dev

How to do a SQL query without INNER JOIN?

From Dev

Get DISTINCT records on INNER JOIN SQL Server

Related Related

  1. 1

    How to Delete using INNER JOIN with SQL Server?

  2. 2

    Get Distinct rows from a result of JOIN in SQL Server

  3. 3

    Get max() value from distinct row value sql server

  4. 4

    SQL Server : select distinct records with inner join and where clause

  5. 5

    SQL Server 2008: Query performance using inner join

  6. 6

    How to get the desired from the SQL Server Query

  7. 7

    How to write a SQL query that subtracts INNER JOIN results from LEFT JOIN results?

  8. 8

    How to apply partition by and row_number() on inner join and case statement in sql query

  9. 9

    SQL distinct inner join

  10. 10

    SQL query with distinct values while using inner join

  11. 11

    Get Distinct rows from a result of JOIN in SQL Server

  12. 12

    Get max() value from distinct row value sql server

  13. 13

    Using Inner Join & Distinct in one query

  14. 14

    Getting error when I'm trying to get data from 3 table using sql INNER JOIN query

  15. 15

    SQL Server 2008: Query performance using inner join

  16. 16

    SQL Server : INNER JOIN returning incorrect row

  17. 17

    How to get the desired from the SQL Server Query

  18. 18

    How to get DISTINCT row from INNER JOIN Query in SQL Server

  19. 19

    DISTINCT SQL query with inner joins that omits a column from considerations,

  20. 20

    how to use with and inner join in Sql server query?

  21. 21

    How to get distinct values from aggregate method in SQL Server

  22. 22

    Want to get one row when doing select distinct with inner join

  23. 23

    How to get the next value from inner join SQL

  24. 24

    SQL query with distinct values while using inner join

  25. 25

    Inner join gives undesired result with row number in sql server

  26. 26

    Query conversion from SQL Server to firebird (UPDATE with inner join)

  27. 27

    How to take top 1 rows for based on Datetime variation in SQL Server using Inner Join query?

  28. 28

    How to do a SQL query without INNER JOIN?

  29. 29

    Get DISTINCT records on INNER JOIN SQL Server

HotTag

Archive