ورود

View Full Version : جوین در اس کیو ال (کمک



millennium_1000
چهارشنبه 23 مرداد 1398, 08:59 صبح
سلام من دو تا جدول دارم که فیلد مشترکشون catID می باشد من می خام روی این فیلد بین دو جدول جوین بزنم فقط نکنه ای که داره
در جدول f فیلد catID از نوع int و جدول a از نوع nvarchar می باشد.


جدول f


1


2


4





جدول a


1,2


1


4



جدول خروجی بر اساس جوین این باید بشه

f
a


1
1


4
4


1
1,2


2
1,2



دوستان کمک کنید .

اینم کدی که خود من نوشتم ولی درست کار نمی کنه
SELECT a.catID,f.catID FROM a
(join f on f.catID in (a.catID

golbafan
چهارشنبه 23 مرداد 1398, 14:01 عصر
نمیشه دو نوع مختلف رو بطور مستقیم جوین کنی

باید اول اونی که int هست به nvarchar تبدیل کنی


SELECT a.catID,f.catID FROM
a join f
on
CONVERT(nvarchar, f.catID) = a.catID

millennium_1000
چهارشنبه 23 مرداد 1398, 14:48 عصر
نمیشه دو نوع مختلف رو بطور مستقیم جوین کنی

باید اول اونی که int هست به nvarchar تبدیل کنی


SELECT a.catID,f.catID FROM
a join f
on
CONVERT(nvarchar, f.catID) = a.catID



خطایی در مورد نوع(تایپ های مختلف) ندارم فقط کدی که بالا خودم نوشتم کار می کنه ولی مقدار درستی بر نمی گردونه(خروجیش درست نیست)
می خام هرچیزی که توی a.catID بود با f.catID بررسی کنه ینی فیلد a چند مقداریه که با کاما جدا میشن.

mmbguide
چهارشنبه 23 مرداد 1398, 22:27 عصر
سلام

شما چرا در دستور Join از in استفاده کردید؟ برای محدود کردن ردیف های جدول دوم می تونید از Apply جهت Join کردن استفاده کنید. سرچ کنید تا روش استفاده از Apply رو متوجه بشید

hamid_hr
پنج شنبه 24 مرداد 1398, 08:15 صبح
مقدار ذخیره شده داخل جدول a بصورت 1,2 هست؟
اگر اسکریپت جداول به همراه داده تستی بزارید دوستان بهتر میتونن کمک کنن

millennium_1000
پنج شنبه 24 مرداد 1398, 10:29 صبح
مقدار ذخیره شده داخل جدول a بصورت 1,2 هست؟
اگر اسکریپت جداول به همراه داده تستی بزارید دوستان بهتر میتونن کمک کنن




CREATE TABLE `a` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`catID` varchar(450) NOT NULL,
PRIMARY KEY (`ID`)
)



catID
ID


1,2
10


1
11


1,2,3
12




CREATE TABLE `f` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`catID` int(10) NOT NULL,
PRIMARY KEY (`ID`)
)



catID
ID


1
50


1
51


2
52






جدول خروجی :


a.catID
a.ID
f.catID
f.ID


1
11
1
50


1,2
10
1
50


1,2,3
12
1
50


1
11
1
51


1,2
10
1
51


1,2,3
12
1
51


1,2
10
2
52


1,2,3
12
2
52



یکم عدد تو عدده
خیلی گیرم ممنون میشم کمک منید.
اسکریپت ها هم درسته توی مای اس کیو ال.

Mahmoud.Afrad
شنبه 26 مرداد 1398, 12:20 عصر
بایست در بخش mysql بپرسید.


جدول a نرمال نیست. بهتره قبل از هر کاری جدولتون رو نرمال کنید.