ホームページ  >  記事  >  バックエンド開発  >  SQL文の要求(少し難しいのでマスターに聞いてください)

SQL文の要求(少し難しいのでマスターに聞いてください)

WBOY
WBOYオリジナル
2016-06-23 14:23:05903ブラウズ

この投稿は dz215136304 によって最終編集されました: 2013-07-28 11:58:31

テーブル
id pid title
1 0 タイトル 1
2 0 タイトル 2
3 2 タイトル 3
4 2 タイトル 4
5 2 タ​​イトル5
6 5 タイトル 6

要件は、テーブル内のすべてのデータを検索することです。pid が他のデータ ID と等しい場合、フィールド内のデータは pid とフィールドによって自動的に生成されます。で割ると、効果は次のようになります

id pid title pidss
1 0 タイトル 1
2 0 タイトル 2 3,4,5
3 2 タイトル 3
4 2 タイトル 4
5 2 タ​​イトル 5 6
6 5 タイトル 6

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

この

select a.*, pidss from tbl_name a left join  (select *, group_concat(id) as pidss from tbl_name where pid>0 group by pid) t on a.id=t.pid
については何も複雑なことはありません
しかし、より深く考えると、必ずしもあなたが期待しているものとは限りません

来て見てください。

2 階は正しいです。データが失われないようにするためのリンクとして使用されます。group_cancat 関数を使用して、単一値の属性をプログラムの複数値の属性に接続します。

group_cancat 関数で解決できます

group_concat

勉強になりました、良かったです。

勉強になりました、悪くありません、これまであまり知りませんでしたが、今では理解できました

勉強になりました、勉強になりました、良かったです

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