PDA

View Full Version : select تو درتو



Sal_64
چهارشنبه 08 آبان 1387, 12:51 عصر
سلام

من دو تا تیبل دارم

تیبل onvan

که شامل دو فیلد نام دستگاه و ردیف دستگاه است

و تیبل دوم riz_pardakhti

که شامل 5 فیلد است که یکی از آنها ردیف دستگاه می باشد

حالا می خوام تو دستور select بگم هر رکوردی که از تیبل riz_pardakhti استخراج شد ، به اون رکورد نام دستگاهش رو هم اضافه کن(در تیبل riz_pardakhti رکورد تکراری هم وجود داره)

و برای این کار باید نام دستگاه رو از تیبل onvan استخراج کنه با شرط برابر بودن ردیف دستگاه در تیبل onvan با ردیف دستگاه در تیبل riz_daryafti

این هم کد


select * from riz_pardakhti where (select name_dastgah from onvan,riz_pardakhti where onvan.radif_dastgah=riz_pardakhti.radif_dastgah)و یا


select (select name_dastgah from onvan,riz_pardakhti where onvan.radif_dastgah=riz_pardakhti.radif_dastgah)as name_dastgah ,* from riz_pardakhti

اما جواب نمی ده
چه باید کرد؟
با تشکر

sjhosseini
چهارشنبه 08 آبان 1387, 13:39 عصر
select riz_pardakhti.field1,riz_pardakhti.field2,riz_pard akhti.codeDastgah,name_dastgah.Onvan


riz_pardakhti INNER JOIN
onvan ON onvan.CodeDastgah = riz_pardakhti.CodeDastgah

Sal_64
چهارشنبه 08 آبان 1387, 15:50 عصر
سلام

از کد شما نتیجه نگرفتم شاید هم من بد استفاده کردم

امکان داره کدتون رو مرتب کنید (از تگ کد استفاده کنید)

با تشکر

ASKaffash
چهارشنبه 08 آبان 1387, 16:32 عصر
سلام
اینطوری بنویسید :


select *,
name_dastgah=(select name_dastgah from onvan Where radif_dastgah=R.radif_dastgah)
from riz_pardakhti R

Sal_64
چهارشنبه 08 آبان 1387, 20:33 عصر
سلام

تشکر

R که در کد استفاده شده چیز خاصیه ؟

MajerajooyeKhallagh
پنج شنبه 09 آبان 1387, 11:41 صبح
دوست عزیز,R یک آلیاس(نام مستعاری است که برای جدول در نظر میگیرند تا مجبور نباشند نام جدول را که طولانی میباشد را پشت نام فیلدها بیاورند و به جای نام کامل جدول از این نام مستعار که کوتاهتر میباشد استفاده میکنند) میباشد و توسط آن نام میتوان به فیلدهای آن جدول دسترسی پیدا کرد