ホームページ  >  記事  >  バックエンド開発  >  多対多クエリ、3 テーブル クエリ、mysql ステートメント

多対多クエリ、3 テーブル クエリ、mysql ステートメント

WBOY
WBOYオリジナル
2016-06-23 13:40:081034ブラウズ

一般的なアプリケーション: 記事とタグのデータ テーブル。次に、「テクノロジー」などの特定のタグをクエリして、すべての技術記事をクエリします。

記事テーブル記事:

aid, title,content-----------------------------------------1   Qt助力跨平台应用开发,势不可挡2   Qt助力跨平台应用开发,势不可挡3   Qt助力跨平台应用开发,势不可挡4   Qt助力跨平台应用开发,势不可挡


タグテーブル tags:
tid,tname--------------------------------1   生活2   技术3   科技4   娱乐


記事タグ関係テーブル art_tags:
aid,tid----------------------------1 11 21 32 12 32 43 13 23 44 14 2


次に、タグに基づいてキーワード「テクノロジー」を検索し、3 つの記事 1、3、 4 が表示されるはずです


ディスカッション(解決策)に返信

select a.* from Article as a left join art_tags at on at.aid=a.aid where at.tid=2

select a.* from Article as a left join art_tags at on at.aid=a.aid where at.tid=2



at.tid=2 ? これは事前に知ることができません。ユーザーは「技術」という漢字を入力しました

select * from article where aid in(select aid from art_tags where tid in(select tid from tags where tname='技术'));

select a.* from article a left join art_tags b on a.aid=b.aid left join tags c on c.tid=b.tid where b.tname='技术'

ありがとうございます!
where もこのように書けることが分かりました

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。