2014-03-04 5 views
-1

테이블이 3 개 있습니다. 3 테이블에 "hobbyid"라는 필드가 있고 SQL 쿼리에 3을 입력해야합니다. 여기 PHP SQL 쿼리 필드를 통해 3 개의 테이블을 결합하십시오.

$result = mysqli_query($con,"SELECT * FROM table1 WHERE username='".$username."' "); 

가 동일한 샘플 구조입니다

: 내가 3에서 데이터를 얻을 수 있도록

table1 

+----+----------+----------+---------+ 
| id | username | password | hobbyid | 
+----+----------+----------+---------+ 

table2 

+----+----------+---------------+---------+ 
| id | username | somethingelse | hobbyid | 
+----+----------+---------------+---------+ 

table3 

+----+----------+-----------+---------+ 
| id | username | something | hobbyid | 
+----+----------+-----------+---------+ 

가 어떻게이 세 테이블을 조인 할 수

하나 개의 테이블은 내가 지금 가지고 무엇입니까?

+0

무엇이 필요합니까? 이름이 다른 필드가 어떻게 병합되어야합니까? –

+0

3 테이블에있는 hobbyid 필드를 사용하여 3 개의 테이블에있는 모든 필드에 액세스 할 수 있어야합니다. – Satch3000

답변

1

심지어 실질적으로하지만 여전히 당신은 당신이 조합을 사용하여 필요하다고 판단되는 경우 3 개 테이블을 생성 할 필요가 없습니다 모든 당신이 별개의 값을 필요로하는 경우 또는 노동 조합 (모든 중복도 값을 필요로하는 경우). 그러나이 경우 모든 테이블에 동일한 열이 있어야합니다. 쿼리 아래

사용이 모두 적합하지 않은 경우 아래의 질의 -

select a.username,a.password,a.hobbyid,b.somethingelse,c.something from table1 a join table2 b on a.hobbyid=b.hobbyid join table 3 c on a.hobbyid=c.hobbyid where a.username='abc'; 

를 사용 hobbyid에 따라에만 공통 데이터를 원하는 경우 3 테이블 -

select * from table1 where username='abc' 
union all 
select * from table2 where username='abc' 
union all 
select * from table3 where username='abc'; 

모든 데이터를 필요로하는 경우 당신을 위해 당신의 요구 사항을 eleborate하십시오.

+0

나는 노동 조합을 사용하는 동안 테이블에 같은 열이 있어야한다고 생각한다. –

+0

같은 열은 아니지만 동일한 열 수 ...이 경우 무언가와 무언가가 암호 열로 이동합니다 ... 실용적이지는 않지만 특별한 조건으로 누군가에게 효과가 있다고 말할 수 있습니다. –

1

트릭이 맞습니까?

$result = mysqli_query($con,"SELECT id, username, hobbyid FROM table1 WHERE username='".$username."' 
UNION ALL (SELECT id, username, hobbyid FROM table2 WHERE username='".$username."') 
UNION ALL (SELECT id, username, hobbyid FROM table3 WHERE username='".$username."')"); 

ID를 가입합니다, 사용자 이름,을 hobbyid - 다른 모든 필드는 ommited됩니다. 그들을 지키고 싶다면 JOIN-s를 사용해야합니다.

+0

다른 필드에도 액세스해야하므로 조인이 필요할 수도 있습니다. 사용자 이름을 확인하기 만하면됩니다. 1 번 테이블. – Satch3000

1
select * from table1 a, table2 b, table3 c 
where a.username= '$username' and b.username= '$username' and c.username='$username' 
//(or) 

//if you want to get the data having same username from tabls 
select * from table1 a 
inner join table2 b on a.username= b.username 
inner join course c on b.username= c.username 
관련 문제