반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL Specifying a variable name in QUERY WHERE clause in JDBC (0) | 2020.11.30 |
---|---|
MySQL Quickest way to dump Python dictionary (dict) object to a MySQL table? (0) | 2020.11.30 |
MySQL mysql 날짜 형식을 mysql에서 dd-mmm-yyyy로 변환 (0) | 2020.11.30 |
MySQL --where 절이있는 mysqldump가 작동하지 않습니다. (0) | 2020.11.30 |
MySQL Mac에서 MySQL Workbench에 연결할 수 없습니다. '127.0.0.1'(61) Mac Macintosh에서 MySQL 서버에 연결할 수 없습니다. (0) | 2020.11.30 |
댓글