1

列 A に特定の値があるかどうかを確認するクエリを実行したいと考えています。A は、 X 、 X 、および Y のみ、または XY と Z の組み合わせを持つことができます。

より良い理解を与えるために。テーブル自体の中で本の著者をチェックしています。テーブルには BOOK_ID 、 BOOK_TITLE 、 AUTHOR_NAME 、 AUTHOR_ORDER があります。

したがって、本には 1、2、または 3 人の著者がいて、AUTHOR_ORDER 行内に順番にリストされています。本に3人の著者がいる場合、それに応じて最初の著者から3番目の著者まで表示される出力に到達するのに非常に苦労しています。値を比較して出力に表示する必要がある部分に行き詰まっています。

MYSQL 出力でこれを達成する方法はありますか?

サンプル :

ここに画像の説明を入力

出力結果は多かれ少なかれ次のようになります。

タイトルの au_ord が 1、2、および 3 の場合、すべての著者名が昇順でリストされた新しい列が必要です。

たとえば、タイトル BU1032 の場合、Author 行は Bennet, Green になります。

4

1 に答える 1

2

GROUP_CONCATはあなたが求めているものだと思います:

SELECT  Title_ID, 
        Title,
        GROUP_CONCAT(au_LName ORDER BY au_Ord) AS Authors
FROM    Books
GROUP BY Title_ID, Title;

SQL フィドル

于 2012-10-29T17:11:07.223 に答える