すべてのテーブルに存在する ID を使用してデータをリンクし、3 つのテーブルからレコードを取得する最も効率的な方法は何ですか?
最初のテーブル: id は主キーではありません。多くのレコードが同じ id 値を持っています。このテーブルの主キーは「primary_id」です
2 番目のテーブル: id は主キーです
3 番目のテーブル: id は主キーです
したがって、最初のテーブルから「id」の他の 2 つのテーブルへの多対 1 の関係があります。そしてもちろん、2 番目から 3 番目のテーブルは "id" で 1 対 1 の関係を持ちます。"id" はどちらも主キーだからです。
最初のテーブルから 5 つのレコードを選択したい (最初のテーブルprimary_id asc で並べ替える -テーブル間で共有されているidではない) が、他の 2 つのテーブルからのレコードも必要です。
私は取得する必要があります
table1.primary_id | table1.id | table1.some_data | table2.some_data | table3.some_data
--------------------------------------------------------------------------------------
1 | 22 | oranges | fruit seller | company
4 | 22 | watermelons | fruit seller | company
13 | 22 | bananas | fruit seller | company
15 | 22 | pears | fruit seller | company
19 | 22 | beans | fruit seller | company
おわかりのように、id が主キーである table2 では、id=22 に some_data=fruit Seller があり、id が主キーである table3 では、id=22 に some_data=company があります。
テーブル 1 の primary_id で最初の 5 つのレコードを取得し、他の 2 つのテーブルからもレコードを取得するには、何を使用すればよいでしょうか?
ジョイン?サブクエリ?私の懸念はパフォーマンスについてです。