programing

다른 선택문의 결과로 선택문을 작성할 수 있습니까?

luckcodes 2022. 10. 8. 09:54

다른 선택문의 결과로 선택문을 작성할 수 있습니까?

다른 선택문의 결과로 선택문을 작성할 수 있습니까?

중요한 것은 표2가 다른 수의 열을 가질 수 있다는 것입니다.

예:

Table1: 
+------+------+
| colA | colB | 
+------+------+
| colE |   0  | 
| colF |   0  | 
+--------+----+

Table2:
+------+------+------+
| colE | colF | colG |
+------+------+------+
|   1  |   1  |   1  |
|   1  |   1  |   1  |
+------+------+------+

select colA from Table1 where colB = '0';  
Result:
colE
colF

이제 위의 결과와 동일한 열 이름(colE 및 colF의 모든 값 합계)을 표 2에 있는 모든 열 값을 합산합니다.이 경우 결과는 4가 됩니다.

나는 mariaDB를 사용한다.

Dynamic SQL과 함께 사용할 수 있습니다.information_schema.columnstable: 테이블 내의 컬럼에 대한 정보를 제공하여 Columns의 컬럼을 도출합니다.Table2에 참가함으로써Table1다음과 같은 일치하는 열만 가져오다

SELECT GROUP_CONCAT( CONCAT('SUM(',colA,')') SEPARATOR '+' )
  INTO @sql
  FROM ( SELECT t1.colA 
           FROM( SELECT *
                   FROM information_schema.columns
                  WHERE table_name = 'Table2' ) AS c
           JOIN Table1 AS t1
             ON t1.colA = c.column_name ) AS t;

SET @sql = CONCAT('SELECT ',@sql,'  AS total FROM Table2'); 
                  
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;  

Demo

언급URL : https://stackoverflow.com/questions/66292392/is-it-possible-to-create-a-select-statement-with-the-result-of-another-select-st