PDA

View Full Version : استفاده از union برای دو جدول برای فیلدها با دیتا تایپ مختلف



احمد سامعی
چهارشنبه 06 اردیبهشت 1391, 14:40 عصر
سلام
من دو تا جدول دارم که فیلدها فقط در شماره ردیف(ID) یکسان هستند و در واقع اطلاعات مربوط به یک شئ رو در دو جدول نگه داریم می کنم. گاهی لازم تمام اطلاعات در یک سلکت بازگشت بدم

آیا با union می شه ؟ من تا حالا ازش استفاده نکردم هرچی هم سرچ زدم و امتحان کردم نشد به ازای یک آی دی دو تا رکورد بازگشت می ده که فیلدها یکی پر یکی خالی

این کدی که من نوشتم:

SELECT cost, dateRg, dateClearing, userId, customerId, customerType, clearingType, description, CAST(0 AS tinyint) AS userId2, CAST(NULL AS datetime) AS dateCancel,
CAST(N'' AS nvarchar) AS description2
FROM DocumentTB
WHERE (Id = @id)
union
SELECT CAST(0 AS int) AS cost, CAST(NULL AS datetime) AS dateRg, CAST(NULL AS datetime) AS dateClearing, CAST(0 AS tinyint) AS userId, CAST(0 AS smallint) AS customerId,
CAST(0 AS tinyint) AS customerType, CAST(0 AS tinyint) AS clearingType, CAST(N'' AS nvarchar) AS description, userId as userId2, dateCancel, description as description2
FROM DocumentCancelTB
WHERE (Id = @id)

tiphooo
چهارشنبه 06 اردیبهشت 1391, 17:29 عصر
شما باید از JOIN استفاده کنی نه UNION
UNION برای حالتی است که تعداد فیلدها در دو SELECT یکی باشد و نوع داده آنها هم یکی باشد و یا نوع داده های SELECT های یعدی را به نوع داده های SELECT اول تبدیل کنی ولی کلا در مورد سوال شما باید از همان JOIN استفاده کنی