2016-06-23 2 views
-2
SELECT DISTINCT manf FROM beers WHERE (SELECT price FROM sells WHERE price > 6); 

질문은 다음과 같습니다. 맥주가 6 달러 이상 판매되는 제조업체를 찾기 위해 하위 쿼리를 사용하여 쿼리를 작성하십시오. 총 멍청한 놈.오라클의 누락 된 표현 오류

+0

맥주와 판매는 어떻게 서로 이야기합니까? 판매에 manf 칼럼이 있습니까? 당신은 어떤 제조사의 판매를 말하는 조인이 필요합니까? WHERE (SELECT price FROM에서 판매 가격이 6보다 높고 manf.beers = manf.sells) –

+0

당신은 그 질문이 다음과 같이 말합니다 : * 쿼리 작성 ... *. 그것은 질문이 아닙니다. 어쩌면 당신의 질문이 될 수 있습니다, 왜 오라클은 불만 * 표현이 누락 * 오류가 있습니까? 이제 그 질문입니다. – sstan

+0

테이블이 어떻게 생겼는지 모른 채 대답을하는 것은 대단히 어렵습니다. 또한 당신의 "질문"은 질문을 공식화하지 않습니다 (물음표 "?"로 끝남). "모든 곳"에 대해서도 자세히 설명하십시오. 그게 무슨 뜻 이니? ** ** 질문 **을 수정하고 개선하십시오! –

답변

-1

테이블을 가입해야합니다. sells 테이블에 beers 테이블로 연결하는 데 사용할 수있는 beer_id이 있다고 가정합니다.

SELECT DISTINCT 
    beers.manf 
FROM 
    sells 
    INNER JOIN beers 
     ON sells.beer_name = beers.beer_name 
WHERE 
    sells.price > 6 
ORDER BY beers.manf; 

이렇게하면 적어도 6 달러 이상 비용이 발생하는 모든 제조업체가 반환됩니다.


경우에는, 그러나, 제조 업체의 모든 맥주는 다음 테이블의 구조를 모르고, 그러나이

SELECT DISTINCT 
    beers.manf 
FROM 
    sells 
    INNER JOIN beers 
     ON sells.beer_name = beers.beer_name 
WHERE 
    sells.price > 6 AND 
    beers.manf NOT IN (SELECT b.manf 
         FROM sells s INNER JOIN beers b ON s.beer_name = b.beer_name 
         WHERE s.price <= 6) 
ORDER BY beers.manf; 

을 이상의 $ 6 비용을해야한다, 당신에게 제공하기 어렵다 정확한 대답.

+0

빠른 응답을 보내 주셔서 감사합니다. 맥주 ID가 없습니다. 맥주 표에는 이름과 제조사가 포함되어 있습니다. –

+0

'판매'와 '맥주'의 두 표에는 공통된 열이 있어야합니다. 그렇지 않으면 그들 사이에 관계를 만들 수 없습니다! 두 테이블의 칼럼을 보여주십시오. 아니면 세 번째 테이블이 관련되어 있습니까? 그렇지 않으면 우리는 어둠을 두드리고 있습니다. –

+0

그들은 공통적으로 맥주 이름 열을 가지고있다 –