-7

「設定」に基づいてテーブルから値を取得しようとしています。

「id」と「alphabet」の2つの列を含むテーブル「t1」があります

サンプルデータ

1 A
1 B
2 A
3 A
3 B

これは、すべての ID がデフォルト値「A」を持ち、一部の ID が「B」を持つことを意味します)。

「B」の好みに基づいて「id」の値を取得したいと思います。したがって、ID に A と B の両方がある場合、B 行が必要です。B 行が見つからない場合は、デフォルトの A が返されます。

4

1 に答える 1

2

mysql方言が常に私を投げるので、これは少しずれているかもしれません。Bはアルファベット順でAの後にあるため、IDでグループ化してから最大値を選択すると、存在するすべてのB行が表示されます。それ以外の場合は、A行が表示されます。

SELECT
    ID,
    MAX(alphabet) AS preference
FROM
    t1
GROUP BY
    ID

ここで、データが指定したものよりも複雑な場合は、MAXロジックがまだ適用されているかどうかを調べる必要があります。

于 2013-01-24T22:33:30.023 に答える