[SQL] SQLite는 - 어떻게 다른 데이터베이스에서 테이블을 조인합니까?
SQLSQLite는 - 어떻게 다른 데이터베이스에서 테이블을 조인합니까?
나는 SQLite 데이터베이스를 사용하고, 모든 것이가 예상대로 작동하는 응용 프로그램이 있습니다. 나는 두 번째 SQLite는 데이터베이스를 필요로 새로운 기능을 추가하는 과정에서 지금 해요,하지만 난 다른 데이터베이스에서 테이블을 조인하는 방법을 알아내는 힘든 시간을 보내고 있습니다.
누군가가이 일 좀 도와 수 있다면 정말 감사하겠습니다!
편집 : 허용 대답에 언급 된대로 데이터베이스를 연결 할 때 언어에 적응 할 수있는 예를 들어, 경우에이 질문을 참조하십시오.
해결법
-
==============================
1.SQLite는의 빌드에 활성화 된 연결하는 경우, 당신은이 키워드 ATTACH 사용하여 현재 연결에 다른 데이터베이스 파일을 첨부 할 수 있습니다 (대부분의 빌드에가 있어야한다). 부착 할 수 데시벨의의의 수에 제한은 컴파일 시간 설정 (SQLITE_MAX_ATTACHED), 10 현재 기본값이지만,이 역시 당신이 빌드에 따라 다를 수 있습니다. 글로벌 제한은 125입니다.
SQLite는의 빌드에 활성화 된 연결하는 경우, 당신은이 키워드 ATTACH 사용하여 현재 연결에 다른 데이터베이스 파일을 첨부 할 수 있습니다 (대부분의 빌드에가 있어야한다). 부착 할 수 데시벨의의의 수에 제한은 컴파일 시간 설정 (SQLITE_MAX_ATTACHED), 10 현재 기본값이지만,이 역시 당신이 빌드에 따라 다를 수 있습니다. 글로벌 제한은 125입니다.
attach 'database1.db' as db1; attach 'database2.db' as db2;
당신은 키워드와 연결된 모든 데이터베이스를 볼 수 있습니다
.databases
그런 다음 다음을 수행 할 수 있어야한다.
select * from db1.SomeTable a inner join db2.SomeTable b on b.SomeColumn = a.SomeColumn;
"[t] 그가 데이터베이스 이름 주 및 임시 임시 테이블 및 기타 임시 데이터 오브젝트를 보유 할 기본 데이터베이스 및 데이터베이스 위해 예약되어 있습니다. 이러한 데이터베이스 이름 모두가 모든 데이터베이스 연결을 위해 존재하고 첨부 파일에 사용되어서는 안된다"고주의.
-
==============================
2.다음은이 질문을 완료하는 C # 예제입니다
다음은이 질문을 완료하는 C # 예제입니다
/// <summary> /// attachSQL = attach 'C:\\WOI\\Daily SQL\\Attak.sqlite' as db1 */ /// path = "Path of the sqlite database file /// sqlQuery = @"Select A.SNo,A.MsgDate,A.ErrName,B.SNo as BSNo,B.Err as ErrAtB from Table1 as A /// inner join db1.Labamba as B on /// A.ErrName = B.Err"; /// </summary> /// <param name="attachSQL"></param> /// <param name="sqlQuery"></param> public static DataTable GetDataTableFrom2DBFiles(string attachSQL, string sqlQuery) { try { string conArtistName = "data source=" + path + ";"; using (SQLiteConnection singleConnectionFor2DBFiles = new SQLiteConnection(conArtistName)) { singleConnectionFor2DBFiles.Open(); using (SQLiteCommand AttachCommand = new SQLiteCommand(attachSQL, singleConnectionFor2DBFiles)) { AttachCommand.ExecuteNonQuery(); using (SQLiteCommand SelectQueryCommand = new SQLiteCommand(sqlQuery, singleConnectionFor2DBFiles)) { using (DataTable dt = new DataTable()) { using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(SelectQueryCommand)) { adapter.AcceptChangesDuringFill = true; adapter.Fill(dt); return dt; } } } } } } catch (Exception ex) { MessageBox.Show("Use Process Exception method An error occurred"); return null; } }
-
==============================
3.글쎄, 난 SQLite는과 많은 경험이없는 단일 쿼리에서 두 데이터베이스에 액세스 할 수 있습니다.
글쎄, 난 SQLite는과 많은 경험이없는 단일 쿼리에서 두 데이터베이스에 액세스 할 수 있습니다.
당신이 뭔가를 할 수 있습니다 :
select name from DB1.table1 as a join DB2.table2 as b where a.age = b.age;
SQLServer에 같은 데이터베이스에서이 계층 적 방식으로 다른 데이터베이스에 액세스 할 수 있습니다, 이것은 또한 SQLite는 작동한다.
나는 당신이 1 개 이상의 데이터베이스와 sqlite가의 인스턴스를 시작할 수있을 것 같아요!
from https://stackoverflow.com/questions/6824717/sqlite-how-do-you-join-tables-from-different-databases by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 바로 조인 내부 조인 또는 어떻게하는 편에있는 테이블을 결정하기 위해 왼쪽 / 조인 사용할 때 어떻게 결정합니까? (0) | 2020.04.06 |
---|---|
[SQL] 동적으로 열 SQL을 생성 (0) | 2020.04.06 |
[SQL] 이 쿼리 페이징 (/ 건너 뛰기 걸릴) 기능을 구현 (0) | 2020.04.06 |
[SQL] SQL 서버의 이중 어떤 표현? (0) | 2020.04.06 |
[SQL] SQL 열에서 가장 자주 값을 찾기 (0) | 2020.04.06 |