Adfer Data O Fyrddau Lluosog Gyda SQL Inner Yn Ymuno

Mae ymuno mewnol yn dychwelyd gwybodaeth sy'n ymddangos mewn dwy gronfa ddata neu ragor

Ymuniadau mewnol yw'r ymuno mwyaf cyffredin yn SQL. Maent yn dychwelyd dim ond gwybodaeth sy'n bodoli mewn dau neu fwy o dablau cronfa ddata. Mae'r cyflwr ymuno yn pennu pa gofnodion sy'n cael eu pâr gyda'i gilydd ac a bennir yn y cymal LLE. Er enghraifft, os oes arnoch angen rhestr o gysgliadau gyrrwr / cerbydau lle mae'r cerbyd a'r gyrrwr wedi'u lleoli yn yr un ddinas, mae'r ymholiad SQL canlynol yn cyflawni'r dasg hon:

SELECT enw olaf, enw cyntaf, tag O'r gyrwyr, cerbydau LLE drivers.location = vehicles.location

Dyma'r canlyniadau:

tag cyntaf enw cyntaf
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Sylwch fod y canlyniadau yn union yr hyn a ofynnwyd. Mae'n bosibl mireinio'r ymholiad ymhellach trwy nodi meini prawf ychwanegol yn y cymal LLE. Cymerwch fod yr ymholiad gwreiddiol yn cyfateb gyrwyr i gerbydau nad ydynt wedi'u hawdurdodi i yrru (gyrwyr tryciau i geir ac i'r gwrthwyneb). Gallwch ddefnyddio'r ymholiad canlynol i ddatrys y broblem hon:

SELECTiwch enw olaf, enw cyntaf, tag, vehicles.class O'r gyrwyr, cerbydau LLE BY drivers.location = vehicles.location AND drivers.class = vehicles.class

Mae'r enghraifft hon yn pennu'r tabl ffynhonnell ar gyfer y briodwedd dosbarth yn y cymal SELECT oherwydd bod y dosbarth yn amwys - mae'n ymddangos yn y ddau dabl. Byddai'r cod fel arfer yn pennu pa golofn y dylid ei gynnwys yng nghanlyniadau'r ymholiad. Yn yr achos hwn, nid yw'n gwneud gwahaniaeth, gan fod y colofnau yn union yr un fath a chânt eu ymuno gan ddefnyddio equijoin. Fodd bynnag, pe byddai'r colofnau'n cynnwys data gwahanol, byddai'r gwahaniaeth hwn yn hanfodol. Dyma ganlyniadau'r ymholiad hwn:

enw cyntaf dosbarth cyntaf tag
---------- ------------ ---- ------
Baker Roland H122JM Car
Truc Michael D824HA Smythe
Jacobs Abraham J291QR Car

Roedd y rhesi ar goll yn parau Michael Smythe i gar ac i Abraham Jacobs i lori, cerbydau nad oeddent wedi'u hawdurdodi i yrru.

Gallwch hefyd ddefnyddio ymuno mewnol i gyfuno data o dri tabl neu fwy .