본문 바로가기
MySql

MySQL은 두 개의 쿼리를 결합합니다.

by 베이스 공부 2021. 1. 20.
반응형

두 개의 MySQL 쿼리가 있습니다.

QUERY:

SELECT sodnik_1 FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_1 != ''
UNION 
SELECT sodnik_2 FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_2 != ''
UNION
SELECT sodnik_3 FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_3 != ''
UNION
SELECT sodnik_4 FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_4 != ''

QUERY:
SELECT value FROM notification_sodniki WHERE user_id='16'

OUTPUT LOOKS LIKE THIS:

Name 1
Name 2
Name 3
Name 4

IN BOTH TABLES

그들은 나에게 1 열을 제공합니다. 교차 조인을 수행하고 두 선택 쿼리에있는 값만 반환하고 싶습니다. 그게 가능합니까?

 

해결 방법

 

어때

SELECT * FROM
(
    SELECT sodnik_1 as value FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_1 != ''
    UNION 
    SELECT sodnik_2 as value FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_2 != ''
    UNION
    SELECT sodnik_3 as value FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_3 != ''
    UNION
    SELECT sodnik_4 as value FROM prihodnji_krog  WHERE file_id='8778' AND sodnik_4 != ''
) x INNER JOIN 
(
    SELECT value FROM notification_sodniki WHERE user_id='16'
) y 
ON x.value = y.value

FROM 절에서 하위 쿼리를 사용하는 것은 임시 테이블을 만드는 것과 같습니다. 그런 다음 별칭을 사용하여 참조하고 INNER JOIN 을 수행 할 수 있습니다.

 

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

 

 

반응형

댓글