ホームページ  >  記事  >  バックエンド開発  >  関連テーブルのクエリ?

関連テーブルのクエリ?

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

たとえば、
a テーブル (カテゴリ)
label_id label_name
1 バドミントン
2 バスケットボール
3 サッカー
4 卓球

b テーブル
id label_id
1 uid 1 1
2 2 1
3 3 1
4 2 2
5 4 2
6 1 3
7 4 3

uid 名前 性別
1 Zhang San 男性
2 Li Si 女性
3 Wang Wu 男性
4 Zhao Liu 女性

現在、ユーザーはテーブル a をクリックしています 特定の値テーブル c のレコードをテーブル b に表示し、テーブル b の値を表示します。
たとえば、ユーザーがテーブル a (label_id は 1) のバドミントンをクリックし、テーブル b からバドミントンが好きな uid 1 と 3 を持つ人がいることを知ります (label_id 1 の値は 1 と 3)。 (テーブル c の uid が表示されます) 1 と 3) については、Zhang San と Wang Wu のすべての属性が表示され、Zhang San と Wang Wu が好む属性がすべて表示されます (テーブル B による)。リクエストされた結果は次のとおりです:

1. Zhang San 男子バドミントン バスケットボール サッカー
2. Wang Wu 男子バドミントン 卓球



thinkphp を使用しています。どうやってするの?









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

このように理解できます, バドミントンが好きな人は何人いるのか知りたいです。バドミントンをすべて表示します。好きな人たち全員に、好きなスポーツを見せてください。

$sql="SELECT c.*,GROUP_CONCAT(a.label_name) AS sport FROM a INNER JOIN b ON a.label_id=b.label_id INNER JOIN c ON b.uid=c.uid WHERE b.uid IN(SELECT b.uid FROM a INNER JOIN b ON a.label_id=b.label_id WHERE a.label_id = 1) GROUP BY uid";M()->query($sql);


なんて素晴らしい人でしょう! !

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