반응형
로컬 테이블에서 참조 테이블로의 SQL 사용 값이 다른 DB에 있음
이것은 불가능할 수 있습니다 ;^)
별도의 클라이언트 dbs에서 청구 및 성능 데이터를 취합하려고 합니다."core" db에는 다음과 같은 테이블이 있습니다.
client_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
client_db_name VARCHAR(100),
...
각 client_db에는 테이블이 있으며,orders
, 기둥이 있는order_date
그리고.order_total
.
개념적으로, 저는 그 시스템을 사용할 수 있으면 좋겠습니다.client_db_name
쿼리에서:
SELECT SUM(order_total) AS sales
FROM {client_db_name}.orders AS o
WHERE o.order_date LIKE '2021%'
질문:
- 이게 가능하긴 합니까?
- 그렇다면 이 쿼리에 어떻게 참여해야 합니까?뭐가 있을까요.
ON
그렇습니까?
감사합니다!
보간 금지.
저장 프로시저는 다음을 통해 보간을 수행할 수 있습니다.CONCAT
,PREPARE
그리고.EXECUTE
.
모든 손님들이 한 테이블에 모이는 것이 더 좋지 않을까요?그렇게 하면 모든 것이 쉬워질 겁니다.
다른 쿼리의 결과인 동적 쿼리를 만들 수 있습니다.
SELECT GROUP_CONCAT(query_piece SEPARATOR ' UNION ALL ')
FROM (SELECT CONCAT("SELECT '", client_db_name, "' AS client, SUM(order_total) AS sales FROM ", client_db_name, '.orders o WHERE YEAR(o.order_date) = 2021') AS query_piece
FROM core.clients) AS sq
내 쿼리는 다음과 같은 동적 쿼리를 반환합니다(core.clients 테이블에 두 개의 클라이언트가 있습니다: a 및 b).
SELECT 'a' AS client, SUM(order_total) AS sales FROM a.orders o WHERE YEAR(o.order_date) = 2021
UNION ALL
SELECT 'b' AS client, SUM(order_total) AS sales FROM b.orders o WHERE YEAR(o.order_date) = 2021
동적 쿼리는 다음과 같은 것을 반환합니다.
고객 | 판매의 |
---|---|
a | 50.00 |
b | 100.00 |
언급URL : https://stackoverflow.com/questions/68974060/sql-use-value-from-local-table-to-reference-table-in-different-db
반응형
'programing' 카테고리의 다른 글
두 unint8_tas unint16_t 결합 (0) | 2023.10.18 |
---|---|
x.jade 부분을 각도로 렌더링하는 것이 가능합니까? (0) | 2023.10.18 |
데이터베이스 테이블을 스파크 데이터 프레임으로 읽기 위해 Apache Spark와 MySQL을 통합하는 방법은 무엇입니까? (0) | 2023.10.13 |
Excel: 수식을 제거하지만 답은 텍스트로 유지 (0) | 2023.10.13 |
특정 폴더 안의 모든 파일을 읽는 방법 (0) | 2023.10.13 |