2

タグ名があり、タグ テーブルからタグ ID を取得し、分類テーブルでタグ ID に一致するすべての ID を検索し、分類テーブルで ID に一致するすべてのアイテムを取得する必要があります。すべてを 1 つのクエリで実行できますか、それともサブクエリが必要ですか? これはデータベース構造の例です

tags database
tid, tag

tags taxonomy database
id, wid, tid

items databse
wid, *

タグ データベースからタグを取得し、タグ データベースから tid をフェッチしてから、分類データベースからすべての wid を返します。ここで、tid はフェッチしたものと同じであり、アイテム データベースから * を返します。これは 2 つの個別のクエリを実行して実行できますが、1 回だけで実行したいと考えています。ありがとうございます。

4

2 に答える 2

4

JOINテーブルだけができます:

select *
from tags tg
left join taxonomy tx
    on tg.tid = tx.tid
left join items i
    on tx.wid = i.wid

構文に慣れていない場合JOINは、次の記事が役立ちます。

JOIN の視覚的な説明

于 2012-10-01T17:12:48.617 に答える
0

これを試して:

SELECT *
FROM tags t
INNER JOIN taxonomy t2 ON t2.tid = t.tid
INNER JOIN items i ON i.wid = t2.wid

これにより、3つのテーブルすべてで一致する行のデータのみが返されることに注意してください。

于 2012-10-01T17:14:14.560 に答える