2012-04-16 7 views
3

사용자를위한 테이블이 있습니다. 그러나 사용자가 프로필을 변경하면 승인 할 때까지 임시 테이블에 저장합니다. 그런 다음 데이터가 실제 테이블로 복사되고 임시 테이블에서 삭제됩니다.동일한 열 이름을 가진 두 테이블의 데이터

달성하고자하는 것은 관리 패널 또는 사용자가 제출하기 전에 다시 확인할 수있는 페이지에서 데이터를 볼 때 두 가지 모두에서 데이터를 가져올 수있는 단일 쿼리를 작성하고 싶습니다. 두 테이블의 id가 $ userid와 같은 테이블. 그런 다음 이전 값이 왼쪽 열에 나타나고 새 값이 오른쪽 열에 나타나는 표 양식을 표시하려고합니다.

일부 SQL 솔루션을 찾았지만 PHP에서 이들을 모두 사용하여 동일한 이름의 열을 결과로 표시하는 방법을 모르겠습니다.

답변

7

AS을 열 이름에 추가하면 다른 이름으로 별명을 지정할 수 있습니다.

SELECT table1.name AS name1, table2.name AS name2, ... 
    FROM table1 
    INNER JOIN table2 
    ON ... 
+0

어떻게 여러 열 이름을 자동으로 별칭을 알 수 있습니까? 예를 들어 두 테이블 모두에서 SELECT *를 원한다면? – salmanhijazi

+0

수 없습니다. 당신은 당신 자신의 각각의 이름에 별명을 붙여야합니다. –

+1

그건 고통 스럽다. (좋아. – salmanhijazi

1

다음은 필수 검색어입니다. 예를 들어 두 테이블에 이름 필드가 있다고 가정 해 보겠습니다. 표 1 로그인 및 표 2 정보. 이제

SELECT login.name as LoginName , information.name InofName 
FROM login left join information on information.user_id = login.id 

이제 LoginNameInofName 어디서나 당신이 필요로 사용할 수 있습니다.

+0

어떻게 여러 개의 열 이름을 자동으로 별칭으로 지정할 수 있습니까? 예를 들어 두 테이블 모두에서 SELECT *를 원한다면? – salmanhijazi

+0

이 트릭이나 다른 테이블의 열 이름을 다르게해야합니다 그것은 괜찮을거야하지만 좋은 연습은 필요한 열을 선택하는 것입니다 –

0

MySQL JOIN을 사용하십시오. 그리고 하나의 mysql 쿼리에 2 개의 테이블에서 모든 데이터를 가져올 수 있습니다.

SELECT * FROM `table1` 
JOIN `table2` ON `table1`.`userid` = `table2`.`userid` 
WHERE `table1`.`userid` = 1 
1

AS SQL 키워드를 사용하는 경우 해당 쿼리의 결과에 대해 열의 이름을 바꿀 수 있습니다.

SELECT 
    `member.uid`, 
    `member.column` AS `oldvalue`, 
    `edit.column` AS `newvalue` 
FROM member, edit 
WHERE 
    `member.uid` = $userId AND 
    `edit.uid` = $userId; 

그 라인을 따라 가면 효과가 있습니다. 비록 SQL이 내 강점이 아니기 때문에 올바른 필드와 값이있는 테이블에서도이 쿼리가 그대로 작동하지 않을 것이라고 확신합니다.

관련 문제