2017-06-12 24 views
0

興味深いSQLクエリがあります。MySQL SELECTステートメント(JOIN)

私は2つのテーブルを持っています。 「DATA」および「DICT」と呼ばれる。

DATAテーブルには列見出しが含まれています。

DICTテーブルには、DATAテーブルの列見出しが(行のデータとして)含まれています。

IOW:

DATAは、列見出し有する:

  • コード
  • 説明
  • DR

    の行を有する
  • CR

DICT

  • コード
  • 私ができるMySQLのSELECTステートメントの使用説明

SELECT column_name from information_schema.COLUMNS WHERE (table_name = "DATA"); 

列名を返します。

ここで私が達成したいのは、(行として)DICTテーブルで除外される行を返すためのSELECT文(必要なJOIN)です。

ので、例につき:

私は DRおよびCRがDICTテーブルの行されていないことをJUST事実を返すために、適切なSELECTステートメントを必要としています。

私は多くの論理的な組み合わせを試してみたところ、「WHERE(table_name = "DATA")」の部分に問題があるようです。

ありがとうございました

+1

期待する出力の例と、2つのテーブルのサンプルデータを表示します。あなたの質問では、2つのテーブルから何かを表示しますが、列名またはデータ値であるかどうかは不明です。 (table_nameは=「DATA」) DICTがDATAでCOLSの一部についてROWSエントリを持つinformation_schema.COLUMNSからCOLUMN_NAME(COLSにしか興味 例: –

+0

データを明確にしてください。データの 構造は次のとおりです。INFORMATION_SCHEMAから SELECT column_nameに。COLUMNS WHERE(table_name = "DATA");セットで コード 説明 DR CR 4行DICTで ROWSです:設定 声明で コード 説明 DR 3行はCR –

+0

を返すべきではなくコメントよりも、あなたの質問を編集して情報を追加してください。 –

答えて

0

スローン・スレッシャー氏は、例が役に立ちそうです。それは、あなたが何をしているのですか?

SELECT DISTINCT is1.column_name 
FROM information_schema.COLUMNS is1 
LEFT JOIN DICT ON is1.table_schema = 'YourSchema' AND is1.table_name = "DATA" AND is1.column_name = DICT.column_name 
WHERE DICT.column_name IS NULL 
; 
+0

はいほとんどありますが、それは私のために働いていません。 :( –

+0

私は結果を提供するためにPythonリストを使用します。 –

0

SELECT COLUMN_NAMEは、information_schema.COLUMNS左からdict.Itemはdict.Item = COLUMN_NAME(TABLE_NAME = 'データ')ON辞書に参加して(dict.Itemがnullです)。

関連する問題