programing

PS4용 게임을 개발한 적이 없는 game_co를 선택합니다.

prostudy 2022. 9. 8. 17:47
반응형

PS4용 게임을 개발한 적이 없는 game_co를 선택합니다.

특정 콘솔용 게임을 개발하지 않은 게임 회사를 찾아야 하는 MariaDB SQL 테이블이 있습니다.

몇개game_coPC 및 Xbox에서만 사용할 수 있으며 PS4에서는 개발된 적이 없습니다.일부 회사는 모든 콘솔에서 여러 개의 타이틀을 개발했지만, 그 중 하나가 PC 전용이었기 때문에 SELECT에 포함되어 있습니다.회사가 XBOX, PC, 닌텐도, PS4 중 어느 쪽인지 확인할 수 있는 필드가 없습니다.

제가 노력한 건

SELECT game_co, FROM company

WHERE developed_on_ps4 = ('false');

추가했습니다.WHERE절은 모두 제가 위에서 추가한 코드 스니펫과 같은 답을 만들어 냅니다.

이것은 너무 많은 결과를 반환하고 있으며, 나는 그것을 확실히 할 방법을 찾을 수 없다.developed_on_ps4는 항상 false 입니다.game_co지금까지 유비소프트였습니다.

를 사용할 필요가 있습니까?CASE어떻게 될지 잘 모르겠어요.

단순히 집약을 사용하여having필터링을 위한 절.이렇게 하면 단일 테이블 스캔에서 원하는 결과를 얻을 수 있습니다.

select game_co
from company
group by game_co
having sum(developed_on_ps4 = 'true') = 0

당신이 원하는 것은 회사 이름이 목록에 없는 모든 회사입니다.developed_on_ps4=true.

다음과 같은 방법을 사용해 보십시오.

SELECT DISTINCT game_co FROM company WHERE game_co NOT IN (
  SELECT DISTINCT game_co FROM company where developed_on_ps4='true'
);

다음과 같은 행이 있는 경우:

game_co    title     developed_on_ps4
-------------------------------------
Ubisoft    Game 1    true
Ubisoft    Game 2    false
Epic       Game 3    true
Blizzard   Game 4    false

그런 다음 내부 쿼리:

SELECT DISTINCT game_co FROM company where developed_on_ps4='true';

돌아오다('Ubisoft', 'Epic')유효한 쿼리를 만듭니다.

SELECT DISTINCT game_co FROM company WHERE game_co NOT IN ('Ubisoft', 'Epic');

그러면 단일 엔트리가 반환되고["Blizzard"]

언급URL : https://stackoverflow.com/questions/59011797/select-game-co-where-theyve-never-developed-a-game-for-ps4

반응형