食品の種類を一覧表示するテーブルがあります。クエリを実行して、最大12の食品を返しますが、各カテゴリから3つ以下を返します。これを1つのクエリで実行できますか?
category food tastyFactor id
seafood fish 100 1
seafood prawns 150 2
seafood crab 50 3
seafood oysters 300 4
meat chicken 20 5
meat pork 100 6
meat lamb 40 7
meat beef 50 8
vegetables carrot 10 9
vegetables cabbage 300 10
vegetables potato 75 11
vegetables parsnip 500 12
食品はtastyFactorで注文する必要があります(結果セットの早い段階で表示される最小の番号)。
私の例では、結果は次のようになります。
carrot
chicken
lamb
beef
crab
potato
fish
prawns
cabbage
を使用UNION
して、同じコンテンツで複数のクエリを組み合わせることができます。
SELECT food FROM (
(SELECT category, food, tastyfactor, id FROM table
WHERE category = 'seafood' LIMIT 3)
UNION
(SELECT category, food, tastyfactor, id FROM table
WHERE category = 'meat' LIMIT 3)
UNION
(SELECT category, food, tastyfactor, id FROM table
WHERE category = 'vegetables' LIMIT 3)
) AS food_from_cateogry ORDER BY tastyfactor
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加