ホームページ >バックエンド開発 >PHPチュートリアル >多対多のクエリ、3 テーブルのクエリ、mysql ステートメント、その対処方法

多対多のクエリ、3 テーブルのクエリ、mysql ステートメント、その対処方法

WBOY
WBOYオリジナル
2016-06-13 12:15:02761ブラウズ

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

この投稿は、2015-02-06 15:11:52 に setoy によって最終的に編集されました 共通のアプリケーション: 記事のデータ テーブルとタグを検索し、「テクノロジー」などの特定のタグをクエリすると、すべての技術記事をクエリできます。

記事テーブルの記事:
aid, title,content<br />-----------------------------------------<br />1   Qt助力跨平台应用开发,势不可挡<br />2   Qt助力跨平台应用开发,势不可挡<br />3   Qt助力跨平台应用开发,势不可挡<br />4   Qt助力跨平台应用开发,势不可挡


タグテーブルのタグ:
tid,tname<br />--------------------------------<br />1   生活<br />2   技术<br />3   科技<br />4   娱乐<br />


記事のタグ関係テーブル art_tags:
aid,tid<br />----------------------------<br />1 1<br />1 2<br />1 3<br />2 1<br />2 3<br />2 4<br />3 1<br />3 2<br />3 4<br />4 1<br />4 2


次に、タグに従ってキーワード「テクノロジー」を検索すると、1、3、4 の 3 つの記事が表示されます
-----解決策のアイデア---- ----- -------------
左に記事から a.* を選択 at.aid=a.aid の at.tid=2 で art_tags に参加
------解決策のアイデア----------------------
<br />select * from article where aid in(select aid from art_tags where tid in(select tid from tags where tname='技术'));<br />

---- --解決策のアイデア-----------
select a.* from article a <br />left join art_tags b on a.aid=b.aid <br />left join tags c on c.tid=b.tid where b.tname='技术'
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。