PDA

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



csharpprogramer88
یک شنبه 23 اسفند 1388, 00: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
یک شنبه 23 اسفند 1388, 00: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
یک شنبه 23 اسفند 1388, 00:32 صبح
میتونی جدول هاتو اینجا بذاری

محمد سلیم آبادی
یک شنبه 23 اسفند 1388, 01: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 استفاده می شن داره.