“… যেখানে…” এবং “যোগদান… চালু…” এর সাথে স্প্যাটালজয়িনের মধ্যে পার্থক্য


9

আমি অবাক হই যে এই দুটি স্থানিক সংযোগের মধ্যে পার্থক্য কোথায় এবং কোনও পার্থক্য থাকলে কখন কোনটি ব্যবহার করতে হবে।

SELECT *
FROM points p, shapes s
WHERE ST_Within(p.geom, s.geom);

এবং

SELECT *
FROM points p
INNER JOIN shapes s ON ST_Within(p.geom, s.geom)

নির্দিষ্ট পরিস্থিতিতে একটি দ্রুত হয়?


1
পার্থক্যটি স্টাইলিস্টিক, তবে যখন আপনার কাজগুলি বারো থেকে পনেরো টেবিলগুলিতে যোগদান করার জন্য প্রসারিত হবে, আপনি কেন অভিজ্ঞ এসকিউএল কোডারগুলি JOINএকচেটিয়াভাবে ব্যবহার করবেন তা আপনি দেখতে পাবেন । দুর্ভাগ্যক্রমে, লিখিত হিসাবে, এটি খাঁটি এসকিউএল প্রশ্ন এবং মতের টোপ বেশি ba
ভিনস

উত্তর:


4

উভয় বক্তব্যের জন্য কারও পার্থক্য নেই। পোস্টগ্রেস্কল এটিকে উভয়কে একই ক্যোয়ারী পরিকল্পনায় রূপান্তর করে। EXPLAIN ANALYZEআপনার নির্বাচনের আগে ফলাফল যুক্ত হওয়ার আগে আপনি যুক্ত করে পরিকল্পনাগুলি দেখতে পারেন ।


একজনকে অন্যের চেয়ে দ্রুত বিবেচনা করা হয়?
স্টফফেস

অবশ্যই হবে। পোস্টগ্রেস্কল এটিকে উভয়কে একই ক্যোয়ারী পরিকল্পনায় রূপান্তর করে। EXPLAIN ANALYZEআপনার নির্বাচনের আগে ফলাফল যুক্ত হওয়ার আগে আপনি যুক্ত করে পরিকল্পনাগুলি দেখতে পারেন ।
রোমান টোচুক

6
আমি যোগদান করতে পছন্দ করি কারণ WHERE এ মিশ্রিত হওয়ার পরে শর্তটি ভুলে যাওয়া খুব সহজ। এছাড়াও যোগদানের পদ্ধতির সাহায্যে আপনি একটি বাম ব্যবহার করতে পারেন উদাহরণস্বরূপ পয়েন্টগুলি যে কোনও আকারের মধ্যে নেই তা সন্ধান করতে পারেন। আপনি WHERE
LR1234567
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.