这是一个来自真实世界 SQL 应用程序问题的示例。我是 SQL 的新用户。
设计一个 (SQL)SELECT
语句,返回居住在密歇根州的所有非测试帐户的名称列表,并包括它返回的内容。
Table: CustomerAcct_tab
id first_name last_name address_id account_type_code
234 John Smith 123 A
342 Mary Ryan 223 C
210 Mark Jackson 398 B
678 Bill Monroe 232 C
789 JoAnne Hill 300 D
Table: Address_tab
id State
123 MI
223 TX
398 CA
232 MI
300 CA
Table: AccountType_tab
code is_test_account
A TRUE
B FALSE
C FALSE
D TRUE
我的解决方案:
SELECT first_name, Last_name
FROM CustomerAcct_tab
INNER JOIN Address_tab ON CustomerAcct_tab.address_id = Address_tab.id
INNER JOIN AccountType_tab ON CustomerAcct_tab.account_type_code = AccountType_tab.code
WHERE is_test_account = FALSE AND Address_tab.State = MI
但是,我认为这可能不正确。
我的同事建议我需要为 CustomerAcct_tab 创建一些索引,否则它是错误的,但我不知道如何以及为什么。