안녕하세요. 나는 테이블을 묶어서 묶는 공통점이 있지만 의미있는 방식으로 덤프 할 수있는 올바른 방법을 찾아 내지 못합니다.공통 필드가있는 여러 테이블의 데이터를 덤프합니다.
기본적으로 사용자에게는 두 번의 테스트가 주어지며 각 테스트는 여러 번 수행 될 수 있습니다. 아래에 비슷한
사용자와 테스트에 대한 기본 테이블 정보를 저장 (우리는이 테이블의 주요 전화 할게) :
user_id test iteration completion_time
1 1 1 1:00
1 2 1 1:30
1 1 2 0:49
1 2 2 1:30
각 테스트 페이지는 다음에서 제공하는 답변을 저장하기 위해 자신의 테이블이 있습니다 일부 페이지에는 많은 질문이 있기 때문에 이 샘플 테이블을 RESULTS라고 부르 겠지만 기본적으로 같은 테이블이 많이 있습니다.
user_id test iteration q1 q2 q3
1 1 1 A B A
1 2 1 B B A
1 1 2 A B B
1 2 2 A B B
이러한 결과 테이블은 기본적으로 결과를 저장, 플러스 정확하게 모든 테이블에 걸쳐 함께 결과를 묶어 충분한 정보 (다시 많습니다). 결과에 대해 하나의 테이블 만 사용하면 몇 백 개의 열이있는 테이블이 남았을 것이기 때문에이 방법으로 설정했습니다. 읽은 테이블은 권장되지 않았습니다.
그래서 여기서 문제는이 테이블을 함께 묶어서 결과를 얻는 방법을 찾아 낼 수 없다는 것입니다. 나는 조인과 유니온을 읽었고 아무도 제대로 된 것처럼 보지 못했다. 왜냐하면 나는 한 번에 ~ 10-15 개의 테이블에서 데이터를 가져와야하기 때문이다.
select m.*, a.*, b.*, c.* from main m, results_a a, results_b b, results_c c where a.user_id=m.user_id and b.user_id=m.user_id and c.user_id=m.user_id'
그 작품의 라인을 따라 뭔가를하지만, 더 나은 방법이있을거야 -
나는 거대한 복잡한 선택 할 수 있습니다. 이 예제에서는 3 개의 결과 테이블 만 제공했다는 것을 명심하십시오. 실제 응용 프로그램에서는 15-20 개의 결과 테이블과 비슷합니다.
실제로 복잡한 것 외에도 일부 행의 중복을 반환하고 추가 논리를 넣고 싶다면 (예를 들어, 내가 전에 쿼리 한 데이터와 동일하지만 테스트 2에만 필요함) 그것은 훨씬 더 복잡해집니다. 그리고 정렬에 대해서도 말하지 않습니다.
내가 읽은 것부터 JOIN은 2 테이블이고 UNION은 열이 아닌 결과 행을 결합합니다.
나는 mysql 전문가가 아니라고 주장하지만 나는 이것을 게시하기 전에 조사했다. 나는 옳은 대답에 가까워 야하지만 단지 그것에 대해 타격을 가하지 않는 것처럼 느낍니다.
누구든지 안내를 해줄 수 있습니까? 내부 사용하려면
확실하게 말하기에는 너무 이르지만 확실히 올바른 방향으로 나를 가리키고 있습니다. 정말 고마워! – jk2