Thursday, July 1, 2010

Using Self-Joins

  • สมมุติว่าเรามีตารางสำหรับเก็บข้อมูลประชากรอยู่ 1 ตาราง
TABLE = PERSONALS
FIELD = PID, FNAME, LNAME, BIRTHDATE
  • โจทย์คือต้องการ query หาประชากรที่มี นามสกุลเหมือนกันดังภาพตัวอย่างด้านบน

select a.pid, a.fname, a.lname, a.birthdate
from personals a
inner join personals b
on a.lname = b.lname
and a.pid != b.pid
order by a.lname

  • หรือ

select a.pid, a.fname, a.lname, a.birthdate
from personals a
inner join personals b
on a.lname = b.lname
where a.pid <> b.pid
order by a.lname


อ้างอิง
  • http://msdn.microsoft.com/en-us/library/ms177490.aspx
  • http://blog.sqlauthority.com/2007/06/03/sql-server-2005-explanation-and-example-self-join/

No comments:

Post a Comment

Popular Posts