>source

안녕하세요 다음 표와 관련하여 문제가 발생했습니다.

      CREATE TABLE BOOKS ( 
          Title varchar(255),
          Year INT,
          Type ENUM("Horror", "Fantasy"),
          Pages INT,
          PRIMARY KEY (Title, Year)
        );
        
        CREATE TABLE AUTHORS(
          Title varchar(255), 
          Year INT, 
          PlaceOfBirth varchar(255), 
          AuthorName varchar(255),
          PRIMARY KEY (Title, Year, PlaceOfBirth ),
          FOREIGN KEY (Title, Year) REFERENCES BOOKS(Title, Year)
        );

이제 40 페이지 이상의 공포 책만있는 모든 저자에게 쿼리하고 싶습니다.

SELECT a.AuthorName, b.Pages FROM AUTHORS a INNER JOIN BOOKS b ON a.Title=b.Title AND a.Year=b.Year
WHERE  b.Type="Horror" AND b.Pages > 40

문제는 이제 40 페이지가 넘는 공포 책을 저술 한 작가들을 얻었지만 40 페이지 미만의 공포 책도 가질 수 있다는 것입니다. 나는 40 페이지 이상의 공포 책 만 쓴 작가를 원한다.

  • 답변 # 1

    적어도 한 권의 공포 책을 썼고 모든 책이 40 페이지 이상인 저자의 이름을 원하면 다음을 사용할 수 있습니다. group byhaving :

    select a.authorname
    from authors a 
    inner join books b on a.title = b.title and a.year = b.year
    where b.type = 'Horror' 
    group by a.authorname
    having min(b.pages) > 40
    
    

관련 자료

  • 이전 pandas - 파이썬 - datetime 데이터 프레임에서 정책 연도 가져 오기
  • 다음 sql - adddate 또는 date-add 또는 date-sub를 사용하는 MySQL (Aurora) 업데이트 타임 스탬프에서 구문 오류가 표시됨