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 Dev

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

From Dev

Get DISTINCT records on INNER JOIN SQL Server

From Dev

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

From Dev

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

From Dev

SQL distinct inner join

From Dev

Get Distinct rows from a result of JOIN in 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

Get max() value from distinct row value sql server

From Dev

SQL Server : INNER JOIN returning incorrect row

From Dev

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

From Dev

SQL query with distinct values while using inner join

From Dev

SQL query with distinct values while using inner join

From Dev

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

From Dev

How to get the next value from inner join SQL

From Dev

How to do a SQL query without INNER JOIN?

From Dev

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

From Dev

How to get distinct values from aggregate method in SQL Server

From Java

How to Delete using INNER JOIN with SQL Server?

From Dev

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

From Dev

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

From Dev

How to get the desired from the SQL Server Query

From Dev

How to get the desired from the SQL Server Query

From Dev

Using Inner Join & Distinct in one query

From Dev

Inner join gives undesired result with row number in sql server

From Dev

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

From Dev

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

From Dev

SQL Server 2008: Query performance using inner join

From Dev

SQL Server 2008: Query performance using inner join

Related Related

  1. 1

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

  2. 2

    Get DISTINCT records on INNER JOIN SQL Server

  3. 3

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

  4. 4

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

  5. 5

    SQL distinct inner join

  6. 6

    Get Distinct rows from a result of JOIN in SQL Server

  7. 7

    Get Distinct rows from a result of JOIN in SQL Server

  8. 8

    Get max() value from distinct row value sql server

  9. 9

    Get max() value from distinct row value sql server

  10. 10

    SQL Server : INNER JOIN returning incorrect row

  11. 11

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

  12. 12

    SQL query with distinct values while using inner join

  13. 13

    SQL query with distinct values while using inner join

  14. 14

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

  15. 15

    How to get the next value from inner join SQL

  16. 16

    How to do a SQL query without INNER JOIN?

  17. 17

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

  18. 18

    How to get distinct values from aggregate method in SQL Server

  19. 19

    How to Delete using INNER JOIN with SQL Server?

  20. 20

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

  21. 21

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

  22. 22

    How to get the desired from the SQL Server Query

  23. 23

    How to get the desired from the SQL Server Query

  24. 24

    Using Inner Join & Distinct in one query

  25. 25

    Inner join gives undesired result with row number in sql server

  26. 26

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

  27. 27

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

  28. 28

    SQL Server 2008: Query performance using inner join

  29. 29

    SQL Server 2008: Query performance using inner join

HotTag

Archive