假设我有两个SQL表:Customers和PhoneNumbers。
假设客户具有以下列:customerId(主键),fName,lName。
假设PhoneNumbers包含以下列:phoneNumberId(主键),phoneNumber,customerId(外键)。
到目前为止,我了解的是,如果每个客户都有一个电话号码,则可以使用以下SQL选择每个客户的fName,lName和phoneNumber:
SELECT customer.fName, customer.lName, phone.phoneNumber FROM Customers customer INNER JOIN phoneNumbers phone ON customer.customerId = phone.customerId
如果客户拥有多个电话号码怎么办?如何获得客户列表以及每个客户的电话号码列表?
我用来驱动SQL的编程语言是C#/。NET。
如您所说,如果每个客户恰好有一个PhoneNumber,那么您的查询将起作用。
具有多个电话号码的客户也将被返回,但是客户记录将针对每个不同的电话号码重复。
您需要考虑的另一个条件是没有电话号码的客户。如果您INNER JOIN表,则这些客户将从结果集中排除。要包括这些客户,您需要使用OUTER JOIN。