簡答:該查詢會給你所有在你的餐桌上有鄰居的顧客。
行由行:
select c1.customer_name, c1.customer_street
最終,你會從客戶那裏得到的表名和街道的列表。
from customer as c1, customer as c2
您將使用此表兩次,交叉引用對自己(見下文)
where c1.customer_street = c2.customer_street
and c1.customer_name <> c2.customer_name;
匹配每個客戶在打擊C2的所有客戶C1,確保了街道匹配和名稱不同(<>是「不等於」的運算符)。
一個簡單的例子:
Name Street:
John Doe Baker
Mary Sue Baker
Zach Smith Dover
JD/Baker JD/Baker streets match, name match. CULL.
JD/Baker MS/Baker streets match, name mismatch. Keep.
JD/Baker ZS/Dover no street match. CULL.
MS/Baker JD/Baker streets match, names don't. Keep.
MS/Baker MS/Baker streets match, name match. CULL.
MS/Baker ZS/Dover no street match. CULL.
ZS/Dover JD/Baker no street match. CULL.
ZS/Dover MS/Baker no street match. CULL.
ZS/Dover ZS/Dover streets match, name match. CULL.
Records kept:
JD/Baker
MS/Baker
瞭解SQL從一個教程,書籍或實踐。不是來自線上發現的寫得不好的代碼。 –