mage table 2k tiyenawa. mata ona location name tika ganna man dena date ekata bookings watila nati.
Meka ganna puluwan query ekak keyanna mysql walin
Meka ganna puluwan query ekak keyanna mysql walin
SELECT name FROM location WHERE id NOT IN (SELECT l.id FROM location AS l, locationbookings AS lb WHERE l.id=lb.locationid AND lb.date="2023-03-06" GROUP BY l.id);
Wade goda.SQL:SELECT name FROM location WHERE id NOT IN (SELECT l.id FROM location as l, locationbookings as lb WHERE l.id=lb.locationid AND lb.date="2023-03-04" GROUP BY lb.locationid)
Wade goda.
Thank you so much bro
SELECT l.name
FROM location l LEFT JOIN locationbookings b
ON l.id = b.locationid AND b.date = '2023-03-06'
WHERE b.id IS NULL;
SELECT name
FROM location
WHERE id NOT IN (SELECT locationid FROM locationbookings WHERE date = '2023-03-06');
SELECT l.name
FROM location l
WHERE NOT EXISTS (SELECT locationid FROM locationbookings WHERE locationid = l.id AND date = '2023-03-06');
mysql daඕක මචන් ලියන්න ක්රම තුනක් තියෙනවා.
1. LEFT JOIN එකක් විදියට
SQL:SELECT l.name FROM location l LEFT JOIN locationbookings b ON l.id = b.locationid AND b.date = '2023-03-06' WHERE b.id IS NULL;
2. Subquery එකක් විදියට (Using IN operator)
SQL:SELECT name FROM location WHERE id NOT IN (SELECT locationid FROM locationbookings WHERE date = '2023-03-06');
3. Correlated Subquery එකක් විදියට (Using Exists operator)
SQL:SELECT l.name FROM location l WHERE NOT EXISTS (SELECT locationid FROM locationbookings WHERE locationid = l.id AND date = '2023-03-06');
ඔතනින් IN operator එක පාවිච්චි කරනවට වඩා Exists operator එක පාවිච්චි කලම performance එක වැඩියි.
මමත් මේ දවස්වල ආයෙත් SQL බලාගෙන යනවා අවුරුදු ගානකින් කරලා නැහැ.