2010-04-21 2 views
3

MySQL 데이터베이스에 두 개의 테이블이 있습니다.첫 번째 데이터를 반복하지 않고 두 테이블의 데이터를?

사용자 테이블과 사용자 메타 표

나는 하나 개의 쿼리에 두 테이블에서 모든 정보를 얻을 수있는 방법을 찾고 있어요. 그러나 사용자 테이블에서 정보를 반복하지 않고.

이것은 사용자 ID 번호와 관련된 정보입니다. 예를 들어 user_id = 1입니다.

데이터베이스를 쿼리하고 첫 번째 정보를 반복하지 않고 두 테이블에서 모든 정보를 수집하는 방법이 있습니까?

구조 예

사용자 표

  • USER_ID
  • USER_LOGIN
  • user_pass

사용자 메타 테이블

  • 이 USER_ID user_meta_id
  • user_meta_key
  • user_meta_value

임이

user_id, user_login, user_pass, user_meta_id, user_id, user_meta_key, user_meta_value 
           user_meta_id, user_id, user_meta_key, user_meta_value 
           user_meta_id, user_id, user_meta_key, user_meta_value 
+1

예제를 제공 할 수 있습니까? –

답변

1

물론 나가 싶은, 그건 쉬운, 당신이 각에서 원하는 필드를 지정 테이블을 조인과 함 2 사용하고 반복되는 컬럼을 포함시키지 마십시오.

SELECT Users.field1, Users.field2, Users.field3, Users.user_ID, 
     UsersMeta.field4, UsersMeta.field5 
FROM USERS 
LEFT JOIN UsersMeta ON (Usuers.user_ID=UsersMeta.User_ID) 
+0

사용자가 메타 레코드를 가지고 있지 않더라도 모든 레코드를 가져 오려는 경우 참여를 원할 수 있습니다. – invertedSpear

+0

비 ANSI 쿼리를 승격하지 마십시오. 해야한다 :'선택 u.Field1, u.Field2, u.Field3, u.user_id, um.Field4, um.field5 사용자로부터 u 내부 user.meta um u.user_id = um.user_id'에 – RedFilter

+0

내 질문 읽기 노조 질의를 상상해 보았습니다. 어쩌면 더 많은 정보가 필요했습니다. – Smandoli

0

사용중인 데이터베이스 서버를 언급하지 않았습니다.

가정하여 테이블 등이있다 :

USERS (user_id, first_name, last_name, gender) 
USER_META (user_id, comment_count, likes) 

조회에 MySQL의에서 다음과 같이 보일 것이다 : 사용자의

SELECT u.user_id, first_name, last_name, gender, comment_count, likes 

유는 USER_META 분의 ON 가입 LEFT (u.user_id = m.user_id) ;

0

네, 그것은 쿼리에서 DISTINCT 키워드를 사용 가능하다 프런트 엔드 도구/언어, 예를 들면,의 일이다

SELECT DISTINCT Users.field1, DISTINCT users.field2, UsersMeta.field3 
      FROM USERS, UsersMeta 
    WHERE Users.user_ID=UsersMeta.User_ID 

Distinct description

0

Crystal Report, PHP, C# 등 쿼리에서 수행하지 마십시오

1
SELECT DISTINCT table1.id, table1.field2, table1.field3, tab_id.id_table1 
FROM table1 
LEFT JOIN tab_id ON (table1.id=tab_id.id_table1) 
관련 문제