بعضی وقتها پیش میاد که شما نیازمند دونستن تعداد ردیفهای چند جدول از دیتابیس برا نمایش اطلاعات به کاربرهای فرانت عند و یا مثلا تولید چارت بخش گزارشها برای مدیران یک شرکت هستید.
شاید برای اینچنین موقعیتی اولین فکری که به ذهن خطور کنه این باشه که به تعداد نیازی که دارید یک درخواست به سرور بفرستید و از دیتابیستون موارد مورد نیاز رو دریافت کنید.
خوشبختانه زبان ساخت یافته SQL برای این کار راه حل سریعتری به نام SubQuery داره و میشه باهاش با نوشتن یک کوئری واحد، چند نتیجه رو با هم از یک یا چند جدول متفاوت دریافت کرد.
مثلا برای دریافت اطلاعات تصویر بالا که شامل نمایش تعداد پرسنل، تعداد دستگاه، تعداد ابزارآلات و تعداد جرائم هست، به جای نوشتن 4 کوئری جدا جدا، به شکل زیر و با یک کوئری میشه نتیجه دلخواه رو بدست آورد:
SELECT ( SELECT COUNT(*) FROM users) AS users_count,
( SELECT COUNT(*) FROM tools) AS tools_count, ( SELECT COUNT(*) FROM crimes) AS crimes_count, ( SELECT COUNT(*) FROM vehicles) AS vehicles_count
به کوئریها میشه شرط هم اضافه کرد تا نتایجش دقیقتر بشه. مثلا کوئری زیر تعداد رنگهای قرمز، آبی و زرد توی جدول table رو بهمون برمیگردونه:
SELECT( SELECT COUNT(*) FROM table WHERE color = 'YELLOW', SELECT COUNT(*) FROM table WHERE color = 'BLUE', SELECT COUNT(*) FROM table WHERE color = 'RED' );
با سابکوئری کدهای جالب و پیچیده تری رو میشه نوشت که برای درک بهتر و دیدن مثالهای بیشتر میتونید یه سرچ کوچیک در موردشون داشته باشید!
امیدوارم مفید بوده باشه.