PDA

View Full Version : اين كوئری را چطوری بنويسم



csharpprogramer88
شنبه 22 اسفند 1388, 23:02 عصر
سلام
دوستان من يه سلكت از براي جدول تحصيلات نوشتم


select * from tahsilat where maghta like'%" + txtmaghta.Text + "%' and reshte like'%" + txtreshte.Text + "%'and madrak like'%" + txtmadrak.Text + "%'

حالا ميخوام از جدول مشخصات id هايي را كه داراي شرط بالا هستند را انتخاب كنم يعني بايد به اين شكل نوشته بشه


select id from moshakhasat where(select * from tahsilat where maghta like'%" + txtmaghta.Text + "%' and reshte like'%" + txtreshte.Text + "%'and madrak like'%" + txtmadrak.Text + "%'

از دستور union استفاده كردم ولي جواب نگرفتم

hakelberfin
شنبه 22 اسفند 1388, 23:20 عصر
سلام

اولا در دستور اولتون اگه محتویات TextBox تون فارسیه از کد زیر استفاده کنید



LIKE(N'" + this.TextBox1.Text.Trim() + "%')

دوما مقدار برگشتی دستور Select یه عدد است که تعداد سطر های تحت تاثیر گرفته شده رو برمیگردونه


select id from moshakhasat where id in (select id from tahsilat where maghta like'%" + txtmaghta.Text + "%' and reshte like'%" + txtreshte.Text + "%'and madrak like'%" + txtmadrak.Text + "%'

s.Jabbari
شنبه 22 اسفند 1388, 23:32 عصر
میتونی جدول هاتو اینجا بذاری

محمد سلیم آبادی
یک شنبه 23 اسفند 1388, 00:03 صبح
سلام
دوستان من يه سلكت از براي جدول تحصيلات نوشتم


select * from tahsilat where maghta like'%" + txtmaghta.Text + "%' and reshte like'%" + txtreshte.Text + "%'and madrak like'%" + txtmadrak.Text + "%'

حالا ميخوام از جدول مشخصات id هايي را كه داراي شرط بالا هستند را انتخاب كنم يعني بايد به اين شكل نوشته بشه


select id from moshakhasat where(select * from tahsilat where maghta like'%" + txtmaghta.Text + "%' and reshte like'%" + txtreshte.Text + "%'and madrak like'%" + txtmadrak.Text + "%'

از دستور union استفاده كردم ولي جواب نگرفتم



select m.*
from moshakhasat as m
where exists
(select *
from tahsilat as t
where maghta like'%" + txtmaghta.Text + "%'
and reshte like'%" + txtreshte.Text + "%'
and madrak like'%" + txtmadrak.Text + "%'
and m.id = t.id)


کافیه در اون خط آبی نام ستون های مشترک این دو جدول رو قرار بدین
در ضمن روش پست شماره ی 2 هم درست هست. در کل برای حل این گونه query ها ما نیاز به semi join داریم که می تونیم از IN یا EXISTS یا INNER JOIN کمک بگیریم که سفارش می کنم همیشه از JOIN استفاده کنین چون عمکرد و سرعت بسیار مناسب تری از Subquery هایی که با IN و EXISTS استفاده می شن داره.