select top 6 * FROM A UNION select top 6 * FROM B간단하게 2개의 테이블에서 각각 6개씩만 가지고와서 최신글 출력해주려고 합니다.기존에 최신글 관련된 로직이 없어서 신규로 만들어야 하는데 간단한 방법이 있을까요..해당 방법으로 하니 A 테이블에 있는 데이터 6개만 들고오고있습니다.A에서 6개, B 에서6 개를 들고와서 writeTime 순으로 진열하려고 합니다.감사합니다 !
`A`와 `B`의 길이가 각각 6이상인게 확실 하다면, `UNION ALL` 을 써야할때 `UNION`을 쓰셨으리라 생각되네요:2개의 쿼리 결과를 단일 결과 세트로 연결합니다. 결과 세트에 중복 행을 포함할지 여부를 제어합니다.UNION ALL - 중복 항목을 포함합니다.UNION - 중복 항목을 제외합니다.출처: https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/set-operators-union-transact-sql?view=sql-server-ver15
BK 늦은시간에 답변 감사합니다.테이블 A 는 포토게시판이고 B 는 공지사항 이라 서로 데이터가 다릅니다.글 갯수또한 다릅니다 ㅠㅠ성능은 일체 고려하지않고 있고.. 각 게시판에서 작성일 순으로 합 6개의 글을 가지고오려고 합니다.감사합니다 !
SELECT * FROM ( SELECT TOP 6 * FROM T1 ORDER BY writeTime DESC ) A UNION ALL SELECT * FROM ( SELECT TOP 6 FROM T2 ORDER BY writeTime DESC ) B ORDER BY writeTime DESC;