admin

SQL从两个表(一行->多行)中选择数据

sql

假设我有两个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。


阅读 180

收藏
2021-07-01

共1个答案

admin

如您所说,如果每个客户恰好有一个PhoneNumber,那么您的查询将起作用。

具有多个电话号码的客户也将被返回,但是客户记录将针对每个不同的电话号码重复。

您需要考虑的另一个条件是没有电话号码的客户。如果您INNER JOIN表,则这些客户将从结果集中排除。要包括这些客户,您需要使用OUTER JOIN。

2021-07-01