SQL Inner Оролцоотой олон хүснэгтээс өгөгдлийг сэргээх

Өвөр хоорондоо холбогддог мэдээллийн хоёр буюу түүнээс дээш тооны өгөгдлийн санд харуулав

Өвөрмөц холболтууд нь SQL дэх хамгийн их хэрэглэгддэг холболтууд юм. Тэд зөвхөн хоёр ба түүнээс дээш өгөгдлийн сангийн хүснэгтэнд байдаг мэдээлэлийг зөвхөн буцааж өгдөг. Холбох нөхцлүүд нь аль бичлэгийг хамт хослуулсаныг тодорхойлж WHERE хэсэгт заасан болно. Жишээлбэл, хэрэв танд жолооч / тээврийн хэрэгслийн таарах зүйлсийн жагсаалт, машин, жолоочийн аль нэг хотод байрлаж байгаа бол дараах SQL query нь энэ үүргийг гүйцэтгэнэ:

Сүүлд нэр, SELECT нэрийг сонгоод FROM жолоочид, тээврийн хэрэгслийг жолоочдоорой.location = vehicles.location

Үр дүнгүүд:

хэрэглэгчийн нэр
----------- ------------ ----
Бейкер Роланд H122JM
Смит бол Майкл D824HA
Смит бол Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Үр дүн нь яг юу хүсч байгааг хараарай. Дээр дурдсан нэмэлт шалгуурыг ашиглан хайлтыг цаашид боловсронгуй болгох боломжтой. Эхний асуулгад жолооч жолоодох эрхтэй тээврийн хэрэгслийг жолоодох эрхтэй гэж үзвэл (ачааны машины жолооч машинууд болон эсрэгээр). Та энэ асуудлыг шийдэхийн тулд дараахь асуултыг ашиглаж болно:

Lastname, firstname, tag, vehicles.class FROM drivers, vehicles WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Энэ жишээ нь SELECT хүснэгт дэх классын шинж чанарын эхлэлийн хүснэгтийг тодорхойлдог учир нь анги хоёрдмол утгатай-энэ нь хоѐр хүснэгтэнд харагдаж байна. Код нь асуулгын үр дүнгийн аль хүснэгтийн баганыг оруулахыг зааж өгдөг. Энэ тохиолдолд баганууд хоорондоо адилхан бөгөөд equijoin ашиглан нийлдэг. Гэхдээ баганууд өөр өөр өгөгдөл агуулж байгаа бол энэ ялгаа нь маш чухал юм. Энд дараахь хайлтын үр дүн байна:

хаягийн нэр
---------- ------------ ---- ------
Бейкер Роланд H122JM машин
Смит бол Майкл D824HA ачааны машин
Жакоб Абрахам J291QR машин

Алга болсон эгнээ Майкл Смитт машин, Абрахам Жэкоб нар ачааны машин, жолоодох эрхгүй тээврийн хэрэгсэлд хослуулсан.

Гурав ба түүнээс дээш хүснэгтээс өгөгдлийг нэгтгэхийн тулд дотоод холболтыг ашиглаж болно.