第三のテーブルから任意の語句が含まれているかどうかを示すために、2つのテーブルとブールフラグに参加する私は1または0を選択するために、ケースを使用しようとしていますSQLクエリは、それは私が次のスキーマに3つのテーブルを持っている
create table main (
main_id int PRIMARY KEY,
secondary_id int NOT NULL
);
create table secondary (
secondary_id int NOT NULL,
tags varchar(100)
);
create table bad_words (
words varchar(100) NOT NULL
);
insert into main values (1, 1001);
insert into main values (2, 1002);
insert into main values (3, 1003);
insert into main values (4, 1004);
insert into secondary values (1001, 'good word');
insert into secondary values (1002, 'bad word');
insert into secondary values (1002, 'good word');
insert into secondary values (1002, 'other word');
insert into secondary values (1003, 'ugly');
insert into secondary values (1003, 'bad word');
insert into secondary values (1004, 'pleasant');
insert into secondary values (1004, 'nice');
insert into bad_words values ('bad word');
insert into bad_words values ('ugly');
insert into bad_words values ('worst');
expected output
----------------
1, 1000, good word, 0 (boolean flag indicating whether the tags contain any one of the words from the bad_words table)
2, 1001, bad word,good word,other word , 1
3, 1002, ugly,bad word, 1
4, 1003, pleasant,nice, 0
最後の列を使用して、メインとセカンダリのテーブルに参加するために結合を使用しますが、混乱してしまいます。誰かが私に質問をしてくれますか?これらのテーブルはredshiftに格納されており、私はredshiftとのクエリ互換性が必要です。
あなたはsqlfiddle
EDITでクエリをしようとする上記のスキーマを使用することができます簡単にはbad_wordsテーブルと結合しているので、私は、二次の表にPRIMARY KEY
を除去することにより、今スキーマと予想される出力を更新しました。あなたが使用することができます
タグのデータ型は? –
質問をスキーマで更新しました – srini