두 개의 다른 테이블이 있습니다. cities_buildings
및 map_buildings
. 둘 다 정확히 동일한 열 이름 / 구조를 갖습니다 .
이와 같은 작업을 수행하고 두 테이블의 각 레코드를 자체적으로 보유하는 것이 가능합니까?
SELECT cb.city_id,
cb.type,cb.x,
cb.y,
mb.city_id,
mb.type,
mb.x,
mb.y
FROM cities_buildings AS cb,
map_buildings AS mb
WHERE city_id IN (1,2)
미리 감사드립니다!
수행하려는 작업이 무엇인지 확실하지 않지만 아마도 다음과 같이 할 것입니다.
SELECT * FROM (
SELECT city_id, type, x, y FROM cities_buildings
UNION ALL
SELECT city_id, type, x, y FROM map_buildings
) WHERE city_id IN (1,2)
이렇게하면 테이블이 연결되고 그 city_id
중 하나에서 a 가 1 또는 2 인 행을 찾습니다 .
테이블에 중복이 있고 출력에 중복을 원하지 않는 경우 UNION
대신 UNION ALL
. 그래도 성능에 영향을 미칩니다.
행이 가져온 테이블을 추적하려면 쿼리의 내부 부분을 다음과 같이 변경할 수 있습니다.
SELECT city_id, type, x, y, 'cities_buildings' AS table_name FROM cities_buildings
UNION ALL
SELECT city_id, type, x, y, 'map_buildings' AS table_name FROM map_buildings
이 방법을 사용하면 UNION
(without ALL
) 테이블 사이에 공통 행이 없기 때문에 의미가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다