2011-09-19 8 views
0

내 호텔 관리 프로젝트에 두 개 이상의 테이블을 가입시키고 싶습니다. 테이블을 결합하는 단계는 모두 무엇입니까? 외래 키없이 가입하거나 작동해야하는 각 테이블에 외래 키를 제공해야합니까?php-mysql에서 두 개 이상의 테이블에 가입하기

+0

귀하의 질문은 명확하지 않습니다 ... 상황을보다 철저하게 설명 할 수 있습니까? 어떤 두 개의 테이블을 병합하려고합니까? 그리고 예상되는 결과는 무엇입니까? –

+0

다음 표를 만들었습니다. 1) 2) guest 3) 메뉴 4) ordersfood 5) room 6) 체크 아웃 – Max

+0

어떤 테이블에 어떤 방식으로 연결하려고합니까? –

답변

0

아니요. 외래 키를 특별히 사용할 필요는 없지만, 동등한 키를 사용할 수도 있습니다. (기본 엔진 MyISAM은 외래 키를 지원하지 않는다. 사용하고 싶다면 InnoDB 나 $ otherEngine을 사용하라.)

조인의 경우 읽기 the documentation on joins을 제안합니다.

+0

답장을 보내 주셔서 감사합니다. – Max

1

단계는 다음과 같습니다

  1. JOIN 조회를 작성하십시오. 끝났어!

JOIN 기본 키나 외래 키가 아닌 열을 사용하면 JOIN을 사용할 수 있습니다. 예를 들어,

select * 
from (select 'x' as a) t1 
inner join (select 'x' as a) t2 on t1.a = t2.a 

쿼리는 JOIN 절과 ON 조항이있다. JOIN 절은 what type of JOIN이고 테이블은 JOIN입니다. ON 절은 JOIN의 열을 지정합니다.

+0

답장을 보내 주셔서 감사합니다. – Max

+0

물론 모든 손님은 음식을 주문하지 않으므로 테이블을 LEFT 가입으로 가입해야합니다. – HLGEM

0

단순 중복 ID 출력없이 조인

SELECT *를 foo는 FROM (ID)를 이용하여 가입 바;

id 열이 두 테이블 모두에 primary로 정의되어 있다고 가정하면 가입하려는 테이블 간의 관계가 만들어집니다.

그러나 사용자가 가지고있는 기준과 요구 사항에 따라 다른 종류의 조인 (자연, 직선, 왼쪽, 오른쪽)이 있습니다. MySQL API 매뉴얼을 확인하십시오. 충분한 정보를 제공합니다.

-1

당신의 상황에 대해 (상단 게시물에서 설명했듯이) 필자는 별도로 테이블의 각각에 대해 게스트의 데이터를 가져 오는 PHP 파일을 만드는 것이 더 합리적이라고 생각합니다. 테이블을 함께 쓰는 것은 너무 성가 시며 실제적인 방법으로는 그리 효과적이지 못합니다.

관련 문제