2013-07-09 2 views
-1

기사, 열 및 보고서와 같은 일종의 기사가 포함 된 3 개의 테이블이 있습니다. 모든 테이블에는 date라는 열이 있는데이 열은 레코드가 추가 된 Unix 타임 스탬프를 포함합니다.SQL에서 여러 테이블의 데이터 가져 오기

이제 기사, 열 및 보고서 테이블의 최근 추가 된 50 개의 레코드를 가져 와서 웹 페이지에 나열하고 싶습니다. 기사와 열은 동일한 고유 ID를 가질 수 있기 때문에 전체 기사 (www.webpage.com/article/12 또는 www.webpage.com/column)에 연결하기 위해 어떤 결과가 어떤 표에서 왔는지도 알아야합니다./12 예를 들어).

이것을 달성하는 가장 좋은 방법은 무엇입니까?

+0

어떤 SQL 공급 업체입니까? MySQL, PostgreSQL, MS SQL Server, SQLite 등? – MatBailie

+0

MySQL, InnoDB .. – Tomzie

답변

1

솔직히, 가장 좋은 방법은 요소를 다른 변수로 가져 오는 것입니다. 어쨌든, 그런

SELECT a.date, a.title, 'ARTICLE' category 
FROM articles a 
WHERE date > :date 
UNION ALL 
SELECT date, title, 'COLUMN' category 
FROM columns 
WHERE date > :date 
UNION ALL 
SELECT date, title, 'REPORT' category 
FROM reports 
WHERE date > :date 

뭔가 : 어쨌든, 여기 당신이 한 번에 모든 작업을 수행하려는 경우 대안입니다. 각 하위 선택 문에 원본 테이블을 참조하는 플래그를 포함시킬 수 있습니다.

+0

좋은 솔루션, 고마워. 요소를 다른 변수로 가져 오는 것을 어떻게 의미합니까? 다른 테이블에서 데이터를 별도로 선택하고 다른 변수에 저장합니까? 어떤 방법으로 실적을 기준으로 가장 좋은 방법이라고 생각하십니까? – Tomzie

+0

SELECT 문을 줄이는 것이 더 효율적 일지 모르지만 특정 설정에 따라 최상의 성능을 제공하는 항목을 확인하려면 놀아야합니다. –

관련 문제