2011-10-21 3 views
-2

많은 관계 테이블과 그에 관련된 코드에 대해 다소 혼란 스럽습니다.많은 관계 쿼리

I가 table1 :

id, username 

그리고 table2 :

id, votes_up, votes_down 

그리고 도우미 테이블 (htable) :

는 내가 일 할 것입니다
vu, vd, adsid 

때 광고를 이 투표는 모든 광고에 적용되지 않습니다.

선택 데이터에서 내 시도 :

mysql_query("SELECT * 
      FROM dbo.tab2 
      INNER JOIN dbo.htable 
      WHERE tab2.votes_up = htable.vu 
       AND htable.votes_down = htable.vd 
      INNER JOIN dbo.tab1 
      WHERE htable.adsID = table1.ID"); 

그리고 내 삽입 시도 :

mysql_query("INSERT INTO dbo.htable (vu, vd, adsid) 
      VALUES 
      (SELECT FROM dbo.tab2.votes_up, dbo.tab2.votes_down , dbo.tab1.id)"); 

내 질문 :이 두 쿼리가 정확합니까? 그렇지 않다면 어떻게 해결할 수 있습니까? 업데이트 쿼리 란 무엇입니까?

+0

나는 거의 당신이 무슨 말을하는지 이해할 수있다. 좀 더 명료 해 지도록 노력하십시오. 또한 더 많은 코드 예제와 더 이해하기 쉬운 테이블 구조 예제를 제공해야합니다. 지금 당장 말할 수있는 것부터 몇 가지 일대 다 관계를 사용해야하며 좋을 것입니다. – casraf

답변

0

귀하의 질문을 이해하지 못하지만 귀하의 SQL 쿼리가 잘못되었습니다. 그들은 아마해야 뭔가 같은 :

SELECT 
    * 
FROM 
    dbo.tab2 as tab2 
    INNER JOIN dbo.htable as htable 
     ON tab2.votes_up = htable.vu 
     AND tab2.votes_down = htable.vd 
    INNER JOIN dbo.tab1 as tab1 
     ON htable.adsID = tab1.ID 

INSERT INTO dbo.htable (vu, vd, adsID) 
    SELECT 
     votes_up, votes_down, ID 
    FROM 
     dbo.tab2 
+0

당신이 말한대로 나는이 코드를 시도했지만 그 코드가 내 쓴 것처럼 PHP 파일에 쓰여있는 것처럼 보입니다. –

+0

이것은 단순히 SQL 문입니다. 실제로 mysql_query() 함수를 PHP mysql_query() 함수에 전달하여 실제로 실행해야한다. 또한 SELECT 쿼리의 결과를 처리하는 코드를 작성해야하지만 나머지 코드는 어떻게 생겼는지 모르기 때문에 직접 처리해야합니다. –

+0

나는 당신의 코드를했지만 htable, 아무것도 삽입하지 않았고 forexemple votes_up> 45를 투표했을 때 투표가 46이 될 것이고 페이지를 새로 고치면 다시 45가 될 것이고 아무런 일도 일어나지 않을 것이다. 여기에 오류가 있습니까? –