データベースについて質問です。
複数のテーブルの中で同じ名前のカラムがあるか調べるには
どうしたらいいでしょうか?
postgreSQL
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
標準ビュー集合も使えます(information_schema)
sql
1select table_name from information_schema.columns where column_name='カラム名';
投稿2016/12/02 08:52
総合スコア4070
0
あ、問題が違うのか。あるテーブル(複数)が与えられているとき、複数のテーブルで同一列名があるとしたら、その列名は何か、なのか。
ならば
SQL
1SELECT vt1.relname, count(*) FROM 2 (SELECT ta.relname FROM pg_attribute ta INNER JOIN pg_class tc ON (tc.oid = ta.attrelid) 3 FROM tc.relname in ('テーブル名1', 'テーブル名2', ...) ) AS vt1 4GROUP BY vt1.relname HAVING count(*) > 1
で、複数テーブルに存在する同一名の列を列挙できるかな。
投稿2016/12/02 06:47
編集2016/12/02 06:49総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
PostgreSQL なら、システムカタログ pg_attribute を使って、「ある列名を持つテーブル」を列挙できるでしょう。
SQL
1select ta.attname, tc.relname 2from pg_attribute ta inner join pg_class tc on (tc.oid = ta.attrelid) 3where ta.attname = '{列名}';
でできないかな?
投稿2016/12/02 06:36
総合スコア13703
0
SELECT
*
FROM
information_schema.columns
WHERE
table_schema = 'public'
投稿2016/12/02 06:35
総合スコア367
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。