본문 바로가기
MySql

MySQL 단일 쿼리로 2 개의 테이블에서 선택

by 베이스 공부 2020. 11. 30.
반응형

2 개의 테이블, article image 가 있습니다.

특정 사용자의 모든 기사를 추출하려면 다음을 수행해야합니다.

모든 기사를 쿼리

SELECT * FROM article WHERE userid = 100;

그런 다음 이러한 기사를 반복하고 다음을 사용하여 이미지를 추출하십시오.

SELECT * FROM image WHERE articleid = currentArticleId;

단일 쿼리로 동일한 결과를 얻으려면 어떻게해야합니까?

 

해결 방법

 

조인 또는 하위 쿼리를 사용할 수 있습니다.


하위 쿼리 (괄호 안에 포함 된 두 번째 쿼리)가 실행되고 반환되는 ID는 초기 쿼리에서 가져올 행을 식별하는 데 사용됩니다. 따라서 하위 쿼리가 (1, 2, 3)을 반환한다고 가정하면 초기 쿼리는 WHERE articleid 가 해당 목록에 IN 인 행을 찾습니다.

SELECT * FROM image WHERE articleid IN (SELECT id FROM article WHERE userid=100);


여기서는 image articleid article 테이블의 id 열과 관련되어 있음을 MySQL에 알립니다. 그런 다음 두 테이블에서 열을 가져올 수 있습니다. 이것은 물을 뿌린 설명이므로 링크를 읽는 것이 좋습니다. 결과가 다른 다양한 유형의 JOIN 이 있으므로 LEFT , RIGHT , OUTER 및 INNER 는 결과 집합이 요구 사항에 맞는지 확인합니다. 이 경우 JOIN INNER 조인과 동일합니다.

SELECT
    image.col1,
    image.col2,
    image.colX,
    article.col1,
    article.col2,
    article.colX
FROM image
JOIN article ON article.id = image.articleid;

 

참조 페이지 https://stackoverflow.com/questions/26120031

 

 

반응형

댓글