PDA

View Full Version : دستور where در inner join



reza4359
پنج شنبه 30 آبان 1392, 03:28 صبح
سلام دوستان چطوری دستور where رو در inner join به این صورت پیاده کنیم؟

(

"select karmand.meli,name from karmand INNER JOIN time_mamor on karmand.meli=time_mamor.meli where time_mamor.date='" + maskedTextBoxAdv4.Text + "' and time_mamor.meli='" + textBoxX1.Text + "'");

rahnema1
پنج شنبه 30 آبان 1392, 04:31 صبح
این رو ببینید جواب میده؟


(
"select r3.meli as meli , r3.name as name from (select r1.meli as meli,r1.name as name,r2.date as date from karmand as r1 INNER JOIN time_mamor as r2 on (r1.meli=r2.meli )) as r3 where r3.date='" + maskedTextBoxAdv4.Text + "' and r3.meli='" + textBoxX1.Text + "'");

ali_habibi1384
پنج شنبه 30 آبان 1392, 08:00 صبح
باید Where در آخر Join قرار بگیره.

reza4359
پنج شنبه 30 آبان 1392, 11:45 صبح
این رو ببینید جواب میده؟


(
"select r3.meli as meli , r3.name as name from (select r1.meli as meli,r1.name as name,r2.date as date from karmand as r1 INNER JOIN time_mamor as r2 on (r1.meli=r2.meli )) as r3 where r3.date='" + maskedTextBoxAdv4.Text + "' and r3.meli='" + textBoxX1.Text + "'");


ممنونم دوست عزیز حالا منظور از r1,r2,r3 چیست؟این کد جواب میده خودتون تست کردین؟

reza4359
پنج شنبه 30 آبان 1392, 22:25 عصر
دوستان اگه کسی هست که جواب بده ممنون میشم

reza4359
پنج شنبه 30 آبان 1392, 22:47 عصر
دوست عزیز این کد بالا جواب نداد!!!چکار باید کرد؟

aslan
پنج شنبه 30 آبان 1392, 23:41 عصر
سلام
کوئری که خودتون نوشتین جواب نمیده ؟

rahnema1
جمعه 01 آذر 1392, 04:44 صبح
ممنونم دوست عزیز حالا منظور از r1,r2,r3 چیست؟این کد جواب میده خودتون تست کردین؟

این r1 , r2 ,r3 یک نام اختیاری هست که به همون جدولها می دهیم و من این کوئری رو روی جدول مشابه تست کردم شاید اسم جدولها را درست اینجا بیان نکرده اید یا مشکل از تکست باکس باشه
لطفا اسم دقیق هر جدول به اضافه اسم فیلد های هر کدام را اینجا بذارید

reza4359
جمعه 01 آذر 1392, 14:18 عصر
دوستان ممنون از راهنمایی و پیگیریتون
این query منه
(

"select karmand.meli,date from karmand INNER JOIN time_mamor on karmand.meli=time_mamor.meli where time_mamor.date='" + maskedTextBoxAdv4.Text + "' and time_mamor.meli='" + textBoxX1.Text + "'");
حالا میخوام با چند فیلد مختلف مثل کد ملی و تاریخ و نام خانوادگی جستجو رو انجام بدم حالا فقط در این حالت که در زیر قرار دادم جواب میده یعنی وقتی که بعد از دستور where یک فیلد برای جستجو قرار میدم و وقتی دوتا فیلد میشه مثل query بالا دیگه جواب نمیده و جستجو رو انجام نمیده یعنی هیچ داده ایی رو داخل گرید ویو نمایش نمیده
(

"select karmand.meli,date from karmand INNER JOIN time_mamor on karmand.meli=time_mamor.meli where time_mamor.meli='" + textBoxX1.Text + "'");

rahnema1
جمعه 01 آذر 1392, 19:08 عصر
ببینید شما که باز مشخصات جدول و مشخصات فیلدها و نوع اونها رو اینجا نذاشتید
ولی حدس مس زنم فیلد meli از نوع عددی باشه و شما دارید با یک تکست که از تکست باکس می گیرید اون رو مقایسه می کنیدکه اگه اینطوری باشه اول باید تکست رو به عدد تبدیل کنید

reza4359
جمعه 01 آذر 1392, 20:11 عصر
سلام دوست عزیز من دو تا جدول دارم به این صورت:
113137
که دو تا رو به هم جوین کردم و همونطور که گفتید با استفاده از دو تا تکس باکس کد ملی و تاریخ ثبت مرخصی فرد رو با کوئری بالا جستجو میکنم ولی فقط وقتی از کد ملی استفاددمیکنم جواب میده
حالا مشکل از کجاست؟

aslan
جمعه 01 آذر 1392, 20:57 عصر
select karmand.meli,date from karmand INNER JOIN time_mamor on karmand.meli=time_mamor.meli where time_mamor.date='" + maskedTextBoxAdv4.Text + "' and time_mamor.meli="+int.Parse(textBoxX1.Text)

reza4359
جمعه 01 آذر 1392, 22:47 عصر
دوست عزیز بازم با این کد جواب نمیده و فقط روی یک فیلد برای جستجو و در قسمت where جواب میده نمیدونم چرا؟؟

rahnema1
جمعه 01 آذر 1392, 23:31 عصر
این را امتحان کنید

convert (varchar,time_mamor.meli) like N'%" + textBoxX1.Text + "%'

reza4359
جمعه 01 آذر 1392, 23:42 عصر
اینم جواب نداد واقعا دیگه نمیدونم چکارکنم اصلا شاید ساختار inner join اینطوری باشه کسی اطلاع نداره در inner join برای جستجو های چند فیلدی بعد از where باید چکار کرد؟