SQL Self Join Concept | Most Asked Interview Question | Employee Salary More than Manager's Salary

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2022
  • In this video we will understand self join concept. Why we need it and how to do it. we will find solution for most asked interview question:
    Find employees with salary more than their mangers salary

ความคิดเห็น • 157

  • @amrutdeshpande05
    @amrutdeshpande05 ปีที่แล้ว +43

    Using Excel and pasting the manager info next to employee info was a great way of explaining! Thank you. You make the life of a Data person so easy!

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว +2

      😊

    • @dhananjaymali6242
      @dhananjaymali6242 ปีที่แล้ว +1

      Correct thanks Ankit 🙌🙌... explaining same without excel was like tutor teaching to only class toppers, just imagine one who can imagine without excel can definitely solve this interview question 😅 it was just putting into syntax task for that kind of guy.

  • @spd3155
    @spd3155 ปีที่แล้ว +92

    create table emp_manager(emp_id int,emp_name varchar(50),salary int(20),manager_id int(10));
    insert into emp_manager values( 1 ,'Ankit', 10000 ,4 );
    insert into emp_manager values( 2 ,'Mohit', 15000 ,5 );
    insert into emp_manager values( 3 ,'Vikas', 10000 ,4 );
    insert into emp_manager values( 4 ,'Rohit', 5000 ,2 );
    insert into emp_manager values( 5 ,'Mudit', 12000 ,6 );
    insert into emp_manager values( 6 ,'Agam', 12000 ,2 );
    insert into emp_manager values( 7 ,'Sanjay', 9000 ,2 );
    insert into emp_manager values( 8 ,'Ashish', 5000 ,2 );

  • @prithak3263
    @prithak3263 3 หลายเดือนก่อน

    great way of explaining. kudos!

  • @Nikhilg-rs7iv
    @Nikhilg-rs7iv 2 หลายเดือนก่อน

    Untill before watching this video I am just joining the tables withing itself and getting the empty table as result lol.
    Thank you Ankit bro for explaining clearly and simply.

  • @sairajesh6895
    @sairajesh6895 ปีที่แล้ว +2

    IT'S ALWAYS THE UNDERRATED VID THAT'S LEGIT! THANK YOU!

  • @shuaibsaqib5085
    @shuaibsaqib5085 ปีที่แล้ว +4

    Hi Ankit,
    Kindly post the Table schema queries in the description for reference and solution query too..

  • @LS8636
    @LS8636 ปีที่แล้ว

    Thanks for making it so easy

  • @ajinkyaadhotre5336
    @ajinkyaadhotre5336 ปีที่แล้ว +12

    DAMN ! the two table creation on excel was soo good way of explaining ! you earned a subscriber ! 🤩

  • @milindzuge906
    @milindzuge906 ปีที่แล้ว

    Thanks Ankit, Great Content❣

  • @ashish-blessings
    @ashish-blessings 5 หลายเดือนก่อน

    Thank you so much

  • @sayansengupta8207
    @sayansengupta8207 8 หลายเดือนก่อน

    Superb!!!!

  • @nishantbodke
    @nishantbodke ปีที่แล้ว

    thank you so much dude you're a god

  • @naveennvnkumar4615
    @naveennvnkumar4615 2 ปีที่แล้ว +2

    You make SQL look so easy, really good. Thanks mate

  • @ganeshtaware9883
    @ganeshtaware9883 2 ปีที่แล้ว

    Thanks

  • @sumanacharya461
    @sumanacharya461 ปีที่แล้ว +1

    If we just use join also it works select e.*,m.salary as sal from emp_manager as e join emp_manager as m on e.manager_id = m.emp_id where e.salary > m.salary this my query and it worked

  • @kirankapruwan8892
    @kirankapruwan8892 9 หลายเดือนก่อน +1

    I had been searching for self join videos. But I did not understand it's working then I came across ur video and you explained in such a easy way that any layman can understand. Thank u so much. Keep doing such great work.

    • @ankitbansal6
      @ankitbansal6  9 หลายเดือนก่อน

      It's my pleasure😊

  • @dfkgjdflkg
    @dfkgjdflkg 3 หลายเดือนก่อน

    as usual, great content. You have been a guru to us. Thanks for your time. It is a selfless act. Thanks again

    • @ankitbansal6
      @ankitbansal6  3 หลายเดือนก่อน

      My pleasure!

  • @anchitgupta4772
    @anchitgupta4772 ปีที่แล้ว +1

    I have solved this question same way in leetcode

  • @aashishmalhotra
    @aashishmalhotra ปีที่แล้ว

    Awesome Ankit got your channel from Linkeidin and its best thing happened.

  • @vutv5742
    @vutv5742 5 หลายเดือนก่อน

    Completed ❤

  • @sridharmurari3007
    @sridharmurari3007 7 หลายเดือนก่อน

    Great Way to explain with Excel not many would explain in Detail like this !

    • @ankitbansal6
      @ankitbansal6  7 หลายเดือนก่อน

      Glad you liked it!

  • @vinipowerbi
    @vinipowerbi ปีที่แล้ว +1

    It became very easy to understand the concept the way you show joining manager id with the second table emp id..... Thank you so much for the clear understanding

  • @RohithS-ig4hl
    @RohithS-ig4hl ปีที่แล้ว

    Thanks for this Ankit. It was really helpful for me in understanding the concept of self joins. Really appreciated!

  • @meerasrinivasagopalan9662
    @meerasrinivasagopalan9662 2 ปีที่แล้ว

    Clear explanation! thank u!

  • @bhaveshbharti4782
    @bhaveshbharti4782 10 หลายเดือนก่อน

    Thanks for so clear explanation. Understood

    • @ankitbansal6
      @ankitbansal6  10 หลายเดือนก่อน

      Great to hear!

  • @lazygeek431
    @lazygeek431 ปีที่แล้ว

    great, thanks for the explanation

  • @aniketraut6864
    @aniketraut6864 ปีที่แล้ว

    Thank you for these amazing videos its helping me to learn the sql in simplest way.

  • @Travelling_With_Kamalu
    @Travelling_With_Kamalu 5 หลายเดือนก่อน

    Thank you sir.
    For the explanation.very clear

    • @ankitbansal6
      @ankitbansal6  5 หลายเดือนก่อน

      You are welcome

  • @spacespectale
    @spacespectale ปีที่แล้ว

    please upload data set as well or provide drive link whenever u upload practical

  • @rahulranjan6740
    @rahulranjan6740 5 หลายเดือนก่อน

    very crystal clear and detailed explanation

    • @ankitbansal6
      @ankitbansal6  5 หลายเดือนก่อน

      Glad you liked it😊

  • @mohiuddinansari9356
    @mohiuddinansari9356 3 หลายเดือนก่อน

    Well explained, thank you so much. Subscribed !

    • @ankitbansal6
      @ankitbansal6  3 หลายเดือนก่อน

      Awesome, thank you!

  • @neelshah8803
    @neelshah8803 2 ปีที่แล้ว

    Hi Ankit,
    Can you please make videos on Python and ML please would be really helpful.
    Thanks

  • @enjoyfriends873
    @enjoyfriends873 2 หลายเดือนก่อน

    Hi Ankit
    Thank you 🙂
    If possible please share the create table and insert statements for every video
    Oracle
    create table emp_manager(
    emp_id number,
    emp_name varchar2(50),
    salary number,
    manager_id number
    );
    insert into emp_manager values( 1 ,'Ankit', 10000 ,4 );
    insert into emp_manager values( 2 ,'Mohit', 15000 ,5 );
    insert into emp_manager values( 3 ,'Vikas', 10000 ,4 );
    insert into emp_manager values( 4 ,'Rohit', 5000 ,2 );
    insert into emp_manager values( 5 ,'Mudit', 12000 ,6 );
    insert into emp_manager values( 6 ,'Agam', 12000 ,2 );
    insert into emp_manager values( 7 ,'Sanjay', 9000 ,2 );
    insert into emp_manager values( 8 ,'Ashish', 5000 ,2 );

  • @shubhamsri4561
    @shubhamsri4561 ปีที่แล้ว

    Your video is very helpful, sir. The way you explain complex concepts is very understandable

  • @mohitmalviya1928
    @mohitmalviya1928 11 หลายเดือนก่อน

    grt work sir

    • @ankitbansal6
      @ankitbansal6  11 หลายเดือนก่อน

      Thanks a lot

  • @hiteshjanuskar7319
    @hiteshjanuskar7319 ปีที่แล้ว

    Very helpful concept 👍🏻

  • @pavangsk8404
    @pavangsk8404 11 หลายเดือนก่อน

    lovely explaining

    • @ankitbansal6
      @ankitbansal6  11 หลายเดือนก่อน

      Thank you! 🙂

  • @sauravips
    @sauravips ปีที่แล้ว

    Beautifully explained

  • @gauravthukral7042
    @gauravthukral7042 2 ปีที่แล้ว +1

    Great explanation 👍

  • @Venom-yk3wu
    @Venom-yk3wu ปีที่แล้ว +1

    the most lucid explanation on whole utube without any complication.. amazing bro !!

  • @vishalsonawane.8905
    @vishalsonawane.8905 หลายเดือนก่อน

    Done

  • @vishnujatav6329
    @vishnujatav6329 ปีที่แล้ว +1

    Very nice explanation

  • @techgalaxy100
    @techgalaxy100 4 หลายเดือนก่อน

    Very well explained brother.

    • @ankitbansal6
      @ankitbansal6  4 หลายเดือนก่อน

      Glad it was helpful!

  • @mahesh6701
    @mahesh6701 ปีที่แล้ว

    SELF JOIN concept explained in the best way. thanks a lot.
    Could you please explain INDEX and CLUSTER INDEX and NON-CLUSTER INDEX concepts please?

  • @vsagar4b38
    @vsagar4b38 5 หลายเดือนก่อน

    Very nicely explained

    • @ankitbansal6
      @ankitbansal6  5 หลายเดือนก่อน

      Keep watching🙌

  • @dudechany
    @dudechany ปีที่แล้ว +1

    Well Ankit's salary is greater than his manager's salary at Amazon 😀. Nice tutorial btw. Great work.

  • @PriyankaPatil-nj2qb
    @PriyankaPatil-nj2qb ปีที่แล้ว

    Thank you sir..

  • @user-bd8li1xz1x
    @user-bd8li1xz1x 2 หลายเดือนก่อน

    Can we combine different columns using inner join

  • @arpitmishra1783
    @arpitmishra1783 11 หลายเดือนก่อน

    nicely explained!

    • @ankitbansal6
      @ankitbansal6  11 หลายเดือนก่อน

      Glad you liked it

  • @divyagouda5285
    @divyagouda5285 ปีที่แล้ว

    Hi.. i have employee table in that we have ename and sal columns. From employee table we need employee name who is getting max sal without using analytical,order by and aggregate functions. How can we do any one help on this

  • @praveenkumarrai101
    @praveenkumarrai101 ปีที่แล้ว

    create table emp_manager(emp_id int,emp_name varchar(50),salary int,manager_id int);
    insert into emp_manager values( 1 ,'Ankit', 10000 ,4 );
    insert into emp_manager values( 2 ,'Mohit', 15000 ,5 );
    insert into emp_manager values( 3 ,'Vikas', 10000 ,4 );
    insert into emp_manager values( 4 ,'Rohit', 5000 ,2 );
    insert into emp_manager values( 5 ,'Mudit', 12000 ,6 );
    insert into emp_manager values( 6 ,'Agam', 12000 ,2 );
    insert into emp_manager values( 7 ,'Sanjay', 9000 ,2 );
    insert into emp_manager values( 8 ,'Ashish', 5000 ,2 );

  • @adityakaushik6417
    @adityakaushik6417 ปีที่แล้ว +1

    Thanks for this example !
    what would be the solution to find out those employees who have highest salary under each manager.

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว

      Rank partition by manager and filter

  • @Vedantsinghvi1611
    @Vedantsinghvi1611 4 หลายเดือนก่อน

    Hello
    Why is manager id taken from the employee table
    And not manager table?
    Thanks

  • @techtalk9903
    @techtalk9903 ปีที่แล้ว

    god bless u xdd

  • @pavan5208
    @pavan5208 2 ปีที่แล้ว +2

    Hi Ankit, thanks for the clear explanation. Small question on the JOIN part. Any particular reason for using INNER JOIN there? LEFT JOIN would also work and produce similar result there right?

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว +2

      Yes but there is no need of left join.When inner join works then why to use left join.

    • @radhikajujjavarapu6971
      @radhikajujjavarapu6971 ปีที่แล้ว +3

      INNER JOIN is optimized than OUTER JOIN

    • @uttamthakur2016
      @uttamthakur2016 7 หลายเดือนก่อน

      @@ankitbansal6 I realized one thing how Emp_id = 1 is getting in output even though 1 is not present in manager_Id ? I am trying to match output but not matching .

  • @yatinshekhar787
    @yatinshekhar787 ปีที่แล้ว

    3/122

  • @sass520
    @sass520 หลายเดือนก่อน

    Hello Sir, You mentioned self join but in the answer you used Inner Join

  • @arbazadam3407
    @arbazadam3407 2 ปีที่แล้ว

    Hi, i have a slightly different question to ask. How can i put a check constraint on the manager_id column such that it shouldn't have any other values except for the ones present in emp_id in postgresql

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว +1

      We can put a forein key constraint

    • @arbazadam3407
      @arbazadam3407 2 ปีที่แล้ว +1

      @@ankitbansal6 thanks dude. I wasn't aware that we can add a foreign key constraint to the same table.

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว

      @@arbazadam3407 we can 😊

  • @satyamtyagi3076
    @satyamtyagi3076 2 ปีที่แล้ว

    Hi Ankit, Correct me if I'm wrong, Don't you think that 'emp_id: 1, emp_name: Ankit' should not come in the result as you have used inner join on the emp_id = manager_id.

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว +1

      But Ankit's manager id is present in table in emp I'd column.

  • @umeshroy6898
    @umeshroy6898 ปีที่แล้ว

    when I run the query say table does not exit

  • @explorer_baba2750
    @explorer_baba2750 2 ปีที่แล้ว +3

    please explain the reason for the join connection based on a.manager_id = b.id? why we cant use a.id = b.manager_id?

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว

      You can do that also. Accordingly you will have to use alias for manager name and emp name and salary.

    • @explorer_baba2750
      @explorer_baba2750 2 ปีที่แล้ว

      @@ankitbansal6 thanks

  • @rajivjain6165
    @rajivjain6165 ปีที่แล้ว +1

    Hi Ankit
    Could you make video on performance tunning topic.

  • @rajeshgoud9619
    @rajeshgoud9619 4 หลายเดือนก่อน

    hello ankit what if one of the manager id is null and how it will join in that case to get emp salary>mgr salary

    • @ankitbansal6
      @ankitbansal6  4 หลายเดือนก่อน

      If an employee does not have a manager then you cannot compare.

  • @AnilKumar-oe1bb
    @AnilKumar-oe1bb 7 หลายเดือนก่อน

    Can you please give more real time scenarios where Self Join is used?

    • @sanilkumarbarik9151
      @sanilkumarbarik9151 7 หลายเดือนก่อน

      Since it's 4 days and nobody replied to your comment, I would recommend you to ask the same question to ChatGPT.

  • @niveditasingh1176
    @niveditasingh1176 2 ปีที่แล้ว +1

    Hey Ankit, if we write query as " on e.emp_id = m.mgr_id" and rest query remains same will it yield same result?

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว

      Nope

    • @Ramesh00300
      @Ramesh00300 ปีที่แล้ว

      @@ankitbansal6 can you please explain why the queries are giving different results when we are changing the on condition?

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว

      @@Ramesh00300 you need to watch the video again to understand

    • @mohitmotwani9256
      @mohitmotwani9256 9 หลายเดือนก่อน

      When specifying a condition in the WHERE clause, it applies after the join has been performed. This means that the join conditions defined in the ON clause have already been applied, and the WHERE clause further filters the resulting data.
      In contrast, the ON clause specifies the conditions for joining tables. It dictates how the tables are connected, such as matching columns or other relationships. This condition is used during the join itself, influencing which rows from both tables are combined.

  • @siramar2453
    @siramar2453 ปีที่แล้ว

    can I write :-
    Table name - emp_manager
    select e.empid, e.salary, m.manager_id, m.salary from emp_manager as e, emp_manager as m
    where e.salary > m.salary; pls sir tell me .

  • @hellotohappiness1028
    @hellotohappiness1028 11 หลายเดือนก่อน

    please increase ur voice ..just now i subscribed

  • @moyeenshaikh9915
    @moyeenshaikh9915 ปีที่แล้ว

    Sir, if we inner join emp id of emp with manager id of manager table, will it work same?

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว +1

      No.

    • @moyeenshaikh9915
      @moyeenshaikh9915 ปีที่แล้ว

      @@ankitbansal6 how to imagine sir which column to take on left table and which one on right

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว +1

      @@moyeenshaikh9915 watch video again

  • @akashwatar6633
    @akashwatar6633 11 หลายเดือนก่อน

    1

  • @amritasinha2784
    @amritasinha2784 ปีที่แล้ว

    If any employee is not having any manager , I mean NULL. Then how to write that? I want NULL in the columns manager_name and manager_salary.

  • @muazmalik601
    @muazmalik601 9 หลายเดือนก่อน

    one more solution:
    with cte as(select A.* , B.Salary as manger_salary from emp_manager as A, emp_manager B where A.manager_id=B.emp_id)
    select emp_id, emp_name from cte where salary> manger_salary

  • @TechnoSparkBigData
    @TechnoSparkBigData 2 ปีที่แล้ว +1

    could you please share script to create these tables?

    • @mohammadabdullahansari6314
      @mohammadabdullahansari6314 ปีที่แล้ว

      create table emp_manager (
      emp_id int,
      emp_name varchar(20),
      salary int,
      manager_id int);
      insert into emp_manager values
      (1,'Ankit',10000,4),(2,'Mohit',15000,5),(3,'Vikas',10000,4),(4,'Rohit',5000,2),
      (5,'Mudit',12000,6),(6,'Agam',12000,2),(7,'Sanjay',9000,2),(8,'Ashish',5000,2);
      select * from emp_manager;

  • @vanshgrover_19
    @vanshgrover_19 หลายเดือนก่อน

    Why did he use INNER JOIN and not SELF JOIN? Please someone tell me!

    • @ankitbansal6
      @ankitbansal6  หลายเดือนก่อน

      There is no keyword as self join. When you join a table with itself it's called self join.

    • @vanshgrover_19
      @vanshgrover_19 หลายเดือนก่อน

      @@ankitbansal6 can't we do this question by joining this employee table with itself?

    • @ankitbansal6
      @ankitbansal6  หลายเดือนก่อน

      ​@@vanshgrover_19 that's what we have done

  • @mohammadabdullahansari6314
    @mohammadabdullahansari6314 ปีที่แล้ว

    Please share the script to make the table.

    • @mohammadabdullahansari6314
      @mohammadabdullahansari6314 ปีที่แล้ว

      Nvm, I created the script:
      create table emp_manager (
      emp_id int,
      emp_name varchar(20),
      salary int,
      manager_id int);
      insert into emp_manager values
      (1,'Ankit',10000,4),(2,'Mohit',15000,5),(3,'Vikas',10000,4),(4,'Rohit',5000,2),
      (5,'Mudit',12000,6),(6,'Agam',12000,2),(7,'Sanjay',9000,2),(8,'Ashish',5000,2);
      select * from emp_manager;

  • @amritasinha2784
    @amritasinha2784 ปีที่แล้ว

    Tables:
    Employee:
    Employee_Id name salary
    1 Ram 4500
    2 Gopi 17500
    3 shyam 9500
    4 Nisha 13500
    Salary_range:
    From_sal To_sal Grade
    0 5000 A
    5001 10000 B
    10001 15000 C
    15001 20000 D
    Output:
    Name Grade
    Ram A
    Gopi D
    shyam B
    Nisha C
    I need a query to get the output result.

    • @ankitbansal6
      @ankitbansal6  ปีที่แล้ว

      Just join with condition salary between from sal and to salary

    • @theraizadatalks14
      @theraizadatalks14 ปีที่แล้ว

      Below Query will give the desired result:
      Select E.emp_name as 'Name',S.Grade from EmployeeT E
      Inner join Salary_range S
      on E.salary between S.From_Sal and S.To_Sal
      Here is the table scripts for the same:
      create table EmployeeT(
      emp_id int,
      emp_name varchar(20),
      salary int,)
      insert into EmployeeT
      values (1, 'Ram', 4500);
      insert into EmployeeT
      values (3, 'Gopi', 17500);
      insert into EmployeeT
      values (3, 'Shyam', 9500);
      insert into EmployeeT
      values (4, 'Nisha', 13500);
      create table Salary_range(
      From_sal int,
      To_sal int,
      Grade varchar(20),
      )
      insert into Salary_range
      values (0,5000,'A');
      insert into Salary_range
      values (5001,10000,'B');
      insert into Salary_range
      values (10001,15000,'C');
      insert into Salary_range
      values (15001,20000,'D');

  • @vignesh9173
    @vignesh9173 2 ปีที่แล้ว

    I solved a similar problem on Leetcode today!
    Used sub queries for it!

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว

      Cool

    • @vignesh9173
      @vignesh9173 2 ปีที่แล้ว

      This was a really good explanation!
      I’ll definitely be following your videos! :D

  • @dikshachourasiya5561
    @dikshachourasiya5561 8 หลายเดือนก่อน

    can't we use this condition on e.emp_id=m.manager_id ?
    Using this giving different output

  • @angelnadar1209
    @angelnadar1209 2 ปีที่แล้ว +1

    Thanks Ankit ! I understood this but under self join ,
    I came across a different question from sqlzoo:
    stops:stops(id, name)
    route(num, company, pos, stop)
    Find the routes involving two buses that can go from Craiglockhart to Lochend.
    Show the bus no. and company for the first bus, the name of the stop for the transfer,
    and the bus no. and company for the second bus.
    I tried to find the solution but getting some error:
    Could you please take this type of example .
    I also saw some solutions but coudn't understand it .like below is an working soution for above question but I didn't understood on what basis they are joining on company and num fields ?
    Sol:
    SELECT a.num, a.company, stops.name, d.num, d.company
    FROM route a JOIN route b ON a.company = b.company AND a.num = b.num
    JOIN stops ON b.stop = stops.id
    JOIN route c ON c.stop = stops.id
    JOIN route d ON c.company = d.company AND c.num = d.num
    WHERE a.stop = (SELECT id FROM stops WHERE name = 'Craiglockhart')
    AND d.stop = (SELECT id FROM stops WHERE name = 'Lochend')
    ORDER BY a.num, stops.name, d.num
    It woud be helpful if you can help me to understand on what basis they are joining on company and num fields ?

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว

      Sure I will check that question.

  • @manjumohan7731
    @manjumohan7731 ปีที่แล้ว

    @ankitbansal6 :I thought self join will have where clause and condition and no need of join cause. Can you plz clarify whether self join and inner join are one and the same as the syntax of both is different and whether can it be used interchangeably
    Using self join for Emp Salary >Manager Salary:
    select
    e1.emp_id as Emp_id,
    e1.emp_name as employee_name,
    e1.salary as emp_salary,
    m1.emp_id as Manager_id,
    m1.emp_name as manager_name,
    m1.salary as manager_salary
    from
    emp3 e1,emp3 m1
    where
    m1.emp_id=e1.manager_id
    and e1.salary>m1.salary
    order by emp_id;

  • @rishabhkesarwani5761
    @rishabhkesarwani5761 ปีที่แล้ว

    Solution Alert
    select emp_id,emp_name,emp_salary,manager_id, manager_salary from(
    select a.emp_id,a.emp_name , a.salary as emp_salary,a.manager_id ,b.salary as manager_salary from emp_manager a join emp_manager b on a.manager_id =b.emp_id ) where emp_salary > manager_salary

  • @rajunaik8803
    @rajunaik8803 ปีที่แล้ว

    scripts:
    create table emp_manager(emp_id int,emp_name varchar(20),salary int,manager_id int);
    insert into emp_manager values(1,'Ankit',10000,4);
    insert into emp_manager values(2,'Mohit',15000,5);
    insert into emp_manager values(3,'Vikas',10000,4);
    insert into emp_manager values(4,'Rohit',5000,2);
    insert into emp_manager values(5,'Mudit',12000,6);
    insert into emp_manager values(6,'Agam',12000,2);
    insert into emp_manager values(7,'Sanjay',9000,2);
    insert into emp_manager values(8,'Ashish',5000,2);
    select * from emp_manager;
    with cte1 as(
    select e.emp_id,e.emp_name,m.emp_name as manager_name,e.salary as emp_salary,m.salary as manager_salary
    from emp_manager e join emp_manager m on e.manager_id=m.emp_id
    )
    select * from cte1 where emp_salary>manager_salary

  • @the_class_apart
    @the_class_apart 2 ปีที่แล้ว +1

    To find employees whose salary is more than manager we could have filtered during JOIN only while declaring ON condition as:
    FROM emp e JOIN emp m
    ON e.manager_id = m.emp_id
    AND e.salary>m.salary;

    • @ankitbansal6
      @ankitbansal6  2 ปีที่แล้ว +1

      In case of inner join both are same 😊