これは、実際の SQL アプリケーションの問題の例です。私は SQL の新しいユーザーです。
SELECT
ミシガン州に住むすべての非テスト アカウントの名前のリストを返し、それが返すものを含む(SQL) ステートメントを設計します。
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 のいくつかのインデックスを作成する必要があることを提案しました。