ورود

View Full Version : سوال: تبدیل کوئری به join



rash44
سه شنبه 14 آذر 1402, 13:19 عصر
با سلام و احترام
کوئری زیر جهت پیاده سازی از طریق join، به چه صورت باید باشد؟




SELECT COUNT(*) FROM `table1` WHERE `code` IN (SELECT `id` FROM `table2` WHERE `target`=1') AND `type`='3'

alisaheb19
یک شنبه 25 آبان 1404, 18:42 عصر
SELECT COUNT(*)
FROM table1
INNER JOIN table2 ON table1.code = table2.id
WHERE table2.target = 1
AND table1.type = '3';

با JOIN این مشکل حذف می‌شود و Query Planner می‌تواند از index(table2.id) و index(table1.code) استفاده کند.

INNER JOIN بهترین انتخاب است چون فقط ردیف‌هایی که match دارند لازم‌اند.