음식 유형을 나열하는 테이블이 있습니다. 쿼리를 실행하여 최대 12 개의 음식을 반환하고 각 카테고리에서 3 개 이하의 음식을 반환하고 싶습니다. 하나의 쿼리로이 작업을 수행 할 수 있습니까?
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] 삭제
몇 마디 만하겠습니다