を一致基準にエントリを検索し、Event
とEventTag
SQL:私は2つのテーブルを持っている別のテーブルに
CREATE TABLE event (
id INT PRIMARY KEY,
content TEXT
)
CREATE TABLE event_tag (
event_id INT,
type VARCHAR(255),
value VARCHAR(255)
)
各イベントは、ゼロ以上のタグを持っています。私はSQLで表現したいクエリは次のとおりです。
は私にEventTag.type="foo" and EventTag.value="bar"
にタグが関連付けられているすべてのEvent
(テーブルのすべての列)を得ました。
(hereに答えとして、参加して、どこで、例えば)これは1つのタグ基準のために簡単ですが、どのように私は2つの以上の基準の状況に取り組むのですか?そう: "bar"と関連するタグ "foo"と "!quux"と等しいイベントタグ "qux"を持つイベントを私にくれますか?私はタグテーブルに参加することを考えましたが、良いアイデアかどうかは分かりません。
どのRDBMSを使用していますか? –
私はテストにはH2を、プロダクションではPostgres 9.1を使用しています。 –
[リレーショナル部門](https://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/)別名「theすべての部品を供給するサプライヤ "と呼ばれています。 SQL/postrgreにはdivide演算子がありません。他の演算子と偽装する必要があります。必ずしも@TomHが示唆している方法である必要はありませんが、それは良いスタートです。 – onedaywhen