ورود

View Full Version : واکشی اطلاعات از چند جدول تو در تو توسط دستور join



davoodi
جمعه 14 مهر 1391, 09:09 صبح
میخواهیم توسط دستور "join" تمام شماره تلفن ها فکس ها و ایمیل هایی که مربوط به آقای "داوود داوودی" است را واکشی نماییم.
لطفا راهنمایی کنید

فایل جدول ها ضمیمه شده است.

saeideng
جمعه 14 مهر 1391, 11:51 صبح
select tell.tell,fax.fax,email.email
From customer Inner Join communication ON customer.Id_customer=communication.Fk_customer
Inner Join tell ON communication.Id_communication=tell.Fk_communicati on
Inner Join fax ON communication.Id_communication=fax.Fk_communicatio n
Inner Join email ON communication.Id_communication=email.Fk_communicat ion
Where customer.Name='داوود' And customer.Family='داوودي'



البته موقع چاپ چون تعداد تلفن برای هر شخص ممکنه مثلا 2 تا باشه بنابراین ایمیل و فکس توی دو تا رکورد نتیجه تکراری میشود

davoodi
جمعه 14 مهر 1391, 19:47 عصر
سلام.
ممنون از پاسختون
اما داده های تکراری رو در این جدول چکار کنم؟

davoodi
جمعه 14 مهر 1391, 21:50 عصر
دوستان کدهای زیر درسته ؟ مشکلی نداره ؟

select Id_ communication from communication where Fk_customer = Id_customer
با این کار Id_ communication رو بدست می آوریم که برابر با Fk_ communication قرارش میدیم

$fk_com = Id_ communication
بعد برای هر کدام از جدول ها یک کوئری ساده میزنیم:

select * from tell where Fk_ communication = $fk_com
select * from fax where Fk_ communication = $fk_com
select * from email where Fk_ communication = $fk_com
و اطلاعات رو واکشی میکنیم.
آیا این راه مشکلی داره ؟
ممنونم.

saeideng
شنبه 15 مهر 1391, 09:38 صبح
این کار رو هم میشه کرد ولی خط اولتون اشتباه هست
در قسمت from باید نام جدول customer رو هم بیارید