Self Join in SQL

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • 📝 Get my free SQL Cheat Sheets: www.databasestar.com/get-sql-...
    🎓 Learn and become confident in SQL: databasestar.mykajabi.com/sql...
    A self join in SQL is where you write a query on one table that joins to the same table a second time. It's used when you have a record in the table that refers to another record in the same table.
    A common example is employees and managers, or product categories. Anything with a "hierarchical data" setup may use an SQL self join.
    This video shows you what an SQL self join is, how to write one, and how to overcome issues with column names and missing data.
    You can find out more about joins overall in this guide here: www.databasestar.com/sql-joins/
    If you want more database training, practice questions, and guides, enroll in Database Star Academy here: www.databasestar.com/dsa/
    If you have any suggestions for other videos or comments on this one, let me know in the comments below.
    Timestamps:
    00:00 Introduction
    00:12 Self Join definition
    01:38 Employee solution
    06:03 Final query
    06:45 Categories example
    07:30 Left Join
  • Věda a technologie

Komentáře • 111

  • @yawenxue2963
    @yawenxue2963 Před 3 lety +17

    I like how you talk :quiet and clear

  • @gauravsrivastava17
    @gauravsrivastava17 Před měsícem

    9:05 writing query and making er diagram is so much helpful

  • @Moon22m
    @Moon22m Před měsícem +1

    Thank you so much! I was trying to understand the ON statement in SELF JOINS and you've explained it perfectly.

  • @astorgadexterpelaez3502
    @astorgadexterpelaez3502 Před 9 měsíci

    thank you! been lurking in your channel for a while now, great content sir!

  • @joel-rg8xm
    @joel-rg8xm Před rokem +1

    Man! That CATEGORIES example saved me just in time before creating many tables. Thanks

  • @elioko3639
    @elioko3639 Před 2 lety +17

    Definitely needed this and you explained it perfectly

  • @user-xs3kf9tx1m
    @user-xs3kf9tx1m Před rokem

    Huge thanks for such a clear explanation! Helped a lot!

  • @metaman8662
    @metaman8662 Před 7 měsíci +1

    I'm thankful I found this video your explanation is what I needed!

  • @Kartik-vj5os
    @Kartik-vj5os Před 2 lety +1

    Even after a year you are helping guys like me! Thanks for clearing my doubt

  • @kpamiose
    @kpamiose Před 2 lety +4

    Thanks for breaking this down so simply.

  • @preciouschinenyenwa8490
    @preciouschinenyenwa8490 Před 4 měsíci

    Thank you, I was struggling to understand self join, but after watching your video, I realised how simple it is.

  • @Kornackifs
    @Kornackifs Před 6 měsíci

    I struggled with an intermediate leetcode sql problem
    I didn't want to see the solution right away so i started searchin on sql topics to full the knowledge gap but what i found is actually a video solving the problem itself fuck me

    • @DatabaseStar
      @DatabaseStar  Před 6 měsíci

      Oh is that a good thing or a bad thing?

    • @Kornackifs
      @Kornackifs Před 6 měsíci

      @@DatabaseStar
      I don't maybe I should've solved it on my own 😥

  • @mdimranhussain171
    @mdimranhussain171 Před rokem +2

    got here from a course i couldnt understand this self join and Thanks to you it's all clear now. you explained it really well with the perfect examples. Keep up

  • @BronProject
    @BronProject Před 2 lety +1

    Thank you for this!

  • @dhruvitmodi3043
    @dhruvitmodi3043 Před 5 měsíci

    Nicely explain in simple terms...checked many of your videos too... I am being SQL developer, liked your work 👍

  • @humbertojesustoledovazquez5891

    What a video!!! Thanks :)

  • @quynhanhnguyenthi1686
    @quynhanhnguyenthi1686 Před 2 lety +2

    Thank you so much for this clear explanation

  • @thanzeeljalaldeen
    @thanzeeljalaldeen Před 2 lety +1

    somethething that i needed currently for my project. thanks a lot sir

  • @OberynPinkViper
    @OberynPinkViper Před rokem

    Thank you for the clear and simple explanation. I remembered seeing the Employee - Manager example somewhere a few years ago, but I couldn't recall where exactly I saw it.

  • @kumruorkun3947
    @kumruorkun3947 Před rokem

    Very clean, thank you

  • @lehadypierrengangue4149

    thanks for the content !!

  • @ZenonMcRae
    @ZenonMcRae Před 2 lety +1

    Nice & clear

  • @kim-ex5cn
    @kim-ex5cn Před rokem

    THANK YOU. i have read a hundred tutorials and was stuck on the alias. starting with the from and on clauses and explaining the AS is implied and then going back to the select cracked things open for me. much appreciated.

    • @DatabaseStar
      @DatabaseStar  Před rokem +1

      Thanks for the kind words! I’m glad this video helped you understand it.

  • @slimandahra4294
    @slimandahra4294 Před 2 lety +1

    your explaining is great thank u..and good luck

  • @Eyenn_n
    @Eyenn_n Před rokem

    Great content! Awesome channel!

  • @bouslamafathi3581
    @bouslamafathi3581 Před rokem

    Perfect explanation thanks a lot

  • @oscarpalomares8282
    @oscarpalomares8282 Před rokem

    Great explanation!

  • @TK-ko3fg
    @TK-ko3fg Před 10 měsíci

    King of SQL explanation

  • @newbeginning3089
    @newbeginning3089 Před rokem

    Thanks. It was 👍

  • @shriefabdelaziz4280
    @shriefabdelaziz4280 Před měsícem +1

    wow amazing explanation thanks!!

  • @spaaaaace8952
    @spaaaaace8952 Před rokem

    Thank you.

  • @hyperborean72
    @hyperborean72 Před 2 měsíci

    lovely example

  • @olufemiolawale3848
    @olufemiolawale3848 Před rokem

    Thank you sir

  • @SonAyoD
    @SonAyoD Před měsícem +1

    Great video

  • @ExcelTutorials1
    @ExcelTutorials1 Před 2 lety +2

    This is super helpful! Your voice is almost like listen to ASMR, lol. Nice to listen to

    • @DatabaseStar
      @DatabaseStar  Před 2 lety

      Heh thanks- I’ve been working to improve the audio on my recent videos so the older ones may sound softer.

    • @teenytinytoons
      @teenytinytoons Před 2 lety

      It's not almost like, IT IS!!!

  • @michaelchiz8055
    @michaelchiz8055 Před rokem

    Good tutorial

  • @matze489
    @matze489 Před 27 dny +1

    really good video

  • @rural_world
    @rural_world Před 4 měsíci +1

    Perfect

  • @TheBoysZone
    @TheBoysZone Před 2 lety +2

    This is how you should teach SQL.....step by step

  • @RoysIdea
    @RoysIdea Před 8 měsíci +1

    So how would you expand these queries if you want to order them from top to bottom, with a level or additional spaces?
    So start with Clair (who has no manager), followed by a manager and his/her team, etc. And include a level column.

    • @DatabaseStar
      @DatabaseStar  Před 8 měsíci

      Good question. It depends on the database vendor, and I've written more about it here: www.databasestar.com/hierarchical-data-sql/

  • @aakash1763
    @aakash1763 Před rokem

    Great explanation just one doubt in the ER diagram for both examples of self join why did you show 1:many relationship?

    • @DatabaseStar
      @DatabaseStar  Před rokem

      Good question! It's because of the way the two concepts or records are related. For example with employees and managers, an employee has one manager, but a manager can have many employees. This is a one-to-many relationship, so I've drawn it that way on the diagram. Hope that helps!

  • @luizetulio4888
    @luizetulio4888 Před rokem

    Great video. Is it possible to use self join and a many to many relationship simultaneously or it would work only for one to many? For example if an employee has 2 or more managers...

    • @DatabaseStar
      @DatabaseStar  Před rokem

      Good question! Yes, that is possible. Another example of using that could be if you want to capture the parents of a person, where each person could have more than one parent.

  • @enricoroselino7557
    @enricoroselino7557 Před rokem

    and what if there is a period validity of the structure (include year and month column) ? should i put it on the same table ? is it okay to have duplicate rows of ppl name?

    • @DatabaseStar
      @DatabaseStar  Před rokem

      Good question, I think it's OK to have on the same table.It would then be an additional condition on your join, or in the WHERE clause, to check if a record falls in a certain date range.

  • @chesterliu1929
    @chesterliu1929 Před 2 lety +1

    At 6:38, relationship between id and manager_id is one to many which means one manager_id can have multiple employee_id to manage. However the multiple arrow sign is pointing to manager_id which should mean many manager_id can manage one employee_id. I think the arrow should be the opposite way, right?

    • @DatabaseStar
      @DatabaseStar  Před 2 lety +1

      Ah yes you're right! The arrow should be the other way around. Thanks for letting me know.

    • @offlinedie
      @offlinedie Před 2 lety +1

      @@DatabaseStar Hi! Sry I think you were correct in the video, Since the foreign key is always on the many side in a EDR. Right?

  • @balaji2035
    @balaji2035 Před 6 měsíci

    hi sir I have one doubt if we specify e.manager_id =m.id it will give the result only the both columns having same values right example manager_id =1 and emp_id also 1 or how does it works can you please clarify my doubt.

    • @DatabaseStar
      @DatabaseStar  Před 6 měsíci

      Yes, if you match on e.manager_id = m.id it will show employers and their managers, which is correct.

  • @MDARUN-ph1dw
    @MDARUN-ph1dw Před 3 lety

    No wonder why you are calling yourself a database star 🔥🔥🔥🔥😁

    • @DatabaseStar
      @DatabaseStar  Před 3 lety

      Thanks! The name is more for my readers and viewers to become "database stars" by learning and improving :)

    • @MDARUN-ph1dw
      @MDARUN-ph1dw Před 3 lety

      @@DatabaseStar 😁😁🔥🔥🔥🔥🔥🔥🙏🏻🙏🏻

  • @gauravsrivastava17
    @gauravsrivastava17 Před měsícem

  • @souronion3822
    @souronion3822 Před 5 měsíci

    It is okay

  • @AmanRaj-zo7bx
    @AmanRaj-zo7bx Před 6 měsíci

    in ERD Diagram, id to manager_id relationship is One to Many, which means an employee can have multiple managers but one manager can not have multiple employees !! But it's not the case here, please clarify it.

    • @DatabaseStar
      @DatabaseStar  Před 5 měsíci +1

      Good point, the employee can only have one manager but the manager can have many employees.

    • @AmanRaj-zo7bx
      @AmanRaj-zo7bx Před 5 měsíci

      @@DatabaseStar Thanks for clarification.

  • @trytofindareasonwhy
    @trytofindareasonwhy Před měsícem

    self joins make my brain melt

    • @DatabaseStar
      @DatabaseStar  Před měsícem

      Yes they are a hard concept to understand!

  • @jaymo2024
    @jaymo2024 Před rokem

    04:45 the ON clause is what you need to know the rest is bloatware

  • @poojamore056
    @poojamore056 Před 6 měsíci

    Hey, the employee example was good! I waited till end for another example tho.. 🥲

    • @DatabaseStar
      @DatabaseStar  Před 6 měsíci

      Thanks! Good point, I should have included more examples.

  • @arnosolo2008
    @arnosolo2008 Před 4 měsíci

    Thank you.