0

いくつかのテーブルを結合するSQLがあります

SELECT contact.contact_id,
        form1.*,
        form2.*
FROM contact
INNER JOIN form1
ON contact.contact_id = form1.contact_id
INNER JOIN form2
ON contact_contact_id = form2.contact_id

テーブルにすべてのフィールド名を書き込むことなく、出力で「contact_id」列を繰り返さないようにしたい(つまり、使い続けたいので、レポートの保守がはるかに簡単になります。フィールドは変更される可能性があります)form1.*form2.*これは可能ですか?私はPostgresを使用しています。

4

2 に答える 2

1

唯一の方法は「使用しないでください*」です。必要な列を明示的に入力する必要があります。これは、JOINを使用する場合の良い習慣です。列が多すぎる場合は、結果を利用してください

select column_name from information_schema.columns
where table_name='your table' and column_name<>'contact_id'
于 2012-07-16T10:07:43.320 に答える
1

contact_idがテーブルが共有する唯一の列名である場合、「自然結合」を使用してテーブルを結合でき、結合列のコピーは1つだけになります。

于 2012-07-16T10:08:26.550 に答える