19-04-2013, 15:33
|
|
|
חבר מתאריך: 19.04.13
הודעות: 3
|
|
זה ההבדל בין where לבין on
אמנם מאוחר, אבל טוב מלעולם לא
יש הבדל חשוב בין התניה בתוך on ובין התניה בwhere, כמובן.
כשעושים left outer join ובסוף מתנים עם where על הטבלה הימנית אז נאבד האפקט
הדרך הנכונה לעשות את מה שהמשתמש שאל היא כזו:
select customers.customerID, count(productName(
from customers left join products
on (customers.customerID = products.customerID and products.productNamd like '%Triangle%')
group by customerID
ההתניה על triangle היא בתוך הon ולא בתוך הwhere
כך שגם לקוחות מהטבלה השמאלית שבהם אין triangle מופיעים
זו הייתה הבעיה בשאר הפיתרונות
לא בדקתי את הקוד
|