خطا در استفاده از کوئری FULL OUTER JOIN
سلام و عرض ادب دوستان من کد زیر را در قسمت SQL دیتابیس که میزنم با خطای زیر روبرو میشم :
SELECT x_customers.CustomerName, x_orders.OrderID FROM x_customers FULL OUTER JOIN x_orders ON x_customers.CustomerID=x_orders.ShipperID
Error
SELECT x_customers.CustomerName, x_orders.OrderID FROM x_customers FULL OUTER JOIN x_orders ON x_customers.CustomerID=x_orders.ShipperID
LIMIT 0, 25
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN x_orders ON x_customers.CustomerID=x_orders.ShipperID LIMIT 0, 25' at line 1


به چه دلیلی میخواهید از full outer join استفاده کنید در mysql این قابلیت وجود نداره میتونید از left outer join استفاده کنید یا اگر نیاز به full join دارید از کد زیر استفاده کنید:
SELECT x_customers.CustomerName, x_orders.OrderID FROM x_customers
LEFT OUTER JOIN x_orders ON x_customers.CustomerID = x_orders.ShipperID
UNION
SELECT x_customers.CustomerName, x_orders.OrderID FROM x_customers
RIGHT OUTER JOIN x_orders ON x_customers.CustomerID = x_orders.ShipperID

1 - چگونه می توان یک FULL OUTER JOIN در MySQL انجام داد؟
2 - آیا MYSQL از FULL OUTER JOIN پشتیبانی میکند؟
3 - قطعا در SQL دیتابیس وقتی شما بخواهید بعنوان نمونه جدول A و جدول B را اجتماع بگیرید خطای MySQL Full Outer Join Syntax Error مواجه می شوید . این به این دلیل است که MYSQL از Full Outer Join پشتیبانی نمی کند .
4 - راه حل :
استفاده از کلمه کلیدی رزرو UNION یا UNION ALL SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
UNION
SELECT * FROM TableA
RIGHT OUTER JOIN TableB
ON TableA.name = TableB.name
نکته:
عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از کلید واژه ALL به همراه UNION استفاده کنید. SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
UNION ALL
SELECT * FROM TableA
RIGHT OUTER JOIN TableB
ON TableA.name = TableB.name
امیدوارم مورد استفاده قرارگرفته باشد...
وتشکر از آقای سجاد عباسی که راهنمایی ارزنده ای داشتند...
https://stackoverflow.com/questions/4796872/how-to-do-a-full-outer-join-in-mysql
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .