2016-06-09 2 views
0

두 테이블을 사용하는 MySQL 쿼리를 작성하려고합니다.두 테이블에서 선택하는 MySQL 쿼리

표 1은 "소용"라는 이름의 필드를 포함 표 2는

두 테이블 "을 UniqueID"

나는 테이블 1 봐야한다 필요한 쿼리라는 이름의 필드를 포함 "CompDate"라는 이름의 필드를 포함 "Avail"에는 "3"이 포함되어 있고 테이블 2에는 "CompDate"에 "2013-08-26"이 포함됩니다.

일치하는 항목이 있으면 쿼리를 실행합니다.

많은 조합의 JOINS를 사용해 보았습니다. 성공하지 못했습니다. 쿼리의 목적은 반환 된 데이터를이 쿼리를 실행하기 전에 만든 새 테이블 "$ NewTable"에 복사하는 것입니다.

내 예제 쿼리 :

mysql_select_db($database_iPin, $conn); 
$query_Hist_Temp_Insert = sprintf("INSERT INTO ".$NewTable." (RecordID,UniqueID,HotelID,Room,AuditBy,AuditorID,LastAudit,Complete,Fail,CompleteDate) 
SELECT RecordID,UniqueID,HotelID,Room,AuditBy,AuditorID,LastAudit,Complete,Fail,CompleteDate 
FROM RUB_Hist 
WHERE CompStamp <= '".$FromDate."'"); 

는 나는 내가 작동하지 않았다 시도하는 사람 bacause이 예에 가입 포함하지 않았습니다.

누구든지이 작업을 수행 할 수 있습니다. 나는 이것이 이것을 며칠 동안 일하도록 노력하고있는 것처럼 느낀다.

미리 감사드립니다.

SELECT RUB_Hist.RecordID, RUB_Hist.UniqueID, CompleteDate,CompStamp 
FROM RUB_Hist INNER JOIN RUB_Avail 
ON RUB_Hist.UniqueID = RUB_Avail.UniqueID 
WHERE RUB_Avail.Avail = '3' AND RUB_Hist.CompStamp <= '2014-01-01' 

내가 쿼리에서 제거 "< = '2014년 1월 1일'AND RUB_Hist.CompStamp"경우 0을 반환 :

건배

나는 아래에 의해 제공되는 코드를 사용했다 그것은 데이터를 반환합니다.

RUB_Hist.CompStamp에 날짜가 < = 인 내 기록이 있는지 확인하기 위해 두 번 검사했습니다.

나는 테스트를 위해 반환 된 필드를 줄였습니다.

+3

"이 예제에서는 제가 시도한 것들이 작동하지 않아서 조인을 포함하지 않았습니다." 도! 제안 : 귀하의 게시물을 업데이트하고, 결합에 무엇이 잘못되었는지 알아 보겠습니다 !!! – paulsm4

답변

0

우리가 말한 것을 보면,이 쿼리는 찾고있는 라인을 따라야합니다. UniqueID 열에서 두 테이블 간의 조인을 수행하고 두 가지 제한 사항이있는 WHERE 절을 포함합니다.

INSERT INTO NewTable 
SELECT t1.*, t2.* 
FROM Table1 t1 INNER JOIN 
Table2 t2 
    ON t1.UniqueID = t2.UniqueID 
WHERE t1.Avail = '3' AND t2.CompDate = '2013-08-26' 
+0

안녕하세요, 귀하의 매우 빠른 회신에 많은 감사드립니다. 게시물에 추가 한 추가 의견을 참조하십시오. – DCJones

+0

WHERE 절에 두 조건을 모두 일치시키는 데이터가 없습니다. 이것이 의미있는 유일한 설명입니다. –

+0

안녕하세요, Tim, 아주 좋은 지적 주셔서 감사합니다. 나는 테이블 데이터를 개선 할 수있는 방법에 대해 좀 더 생각해 볼 것입니다. 다시 한 번 많은 시간을 내 주셔서 감사합니다. – DCJones

관련 문제