2013-08-02 3 views
0

문제가 있습니다. 나는 MySQL에서 새롭다. 지금까지 단순한 쿼리 만 필요했고 모든 것이 잘 동작했습니다. 하지만 지금은 문제가 있습니다.URL의 ID를 기반으로 두 테이블에서 MySQL SELECT

  1. 테이블 tarife

    +----+---------------+ 
    | id | ime_tarife | 
    +----+---------------+ 
    | 1 | Neka tarifa 1 | 
    | 2 | Neka tarifa 2 | 
    +----+---------------+ 
    
  2. 테이블 telefoni_dodatak

    +----+--------------+-----------+-------+ 
    | id | telefoni_id | tarifa_id | price | 
    +----+--------------+-----------+-------+ 
    | 1 |   35 |   1 | 650 | 
    | 2 |   35 |   2 | 700 | 
    +----+--------------+-----------+-------+ 
    

이 테이블의 모든 값은 정수 : 나는 두 개의 테이블이있다.

나는 번호 35 (일부 세 번째 표에 사용 된) 페이지의 ID를 나타냅니다이 www.example.com/phones/35/ 같은 URL을 가지고 있고, 그것은 또한 테이블 telefoni_dodataktelefoni_id로 writen입니다.

tarifa_id의 테이블 번호는 tarife입니다.

나는 URL을 www.example.com/phones/35/에서 ID를 기반으로 HTML이 같은 출력을 얻을 수있다 :이 쿼리를 시도했습니다

Neka tarifa 1 | 650 
------------------- 
Neka tarifa 2 | 700 

:

SELECT *, (SELECT ime_tarife FROM tarife WHERE id = (SELECT tarifa_id FROM telefoni_dodatak WHERE telefoni_id = :id)) AS nazivTarife FROM telefoni_dodatak WHERE telefoni_id = :id 

하지만이 작동하지 않습니다. (nazivTarife이 정의되지 않았습니다.)

저는 PDO를 사용하고 있으며 :id은 url에서 35 번입니다.

P. 이 쿼리 SELECT * FROM telefoni_dodatak WHERE telefoni_id = :id이 정상적으로 작동하며 650과 700 가격을 모두받습니다.

미리 도움을 청하십시오!

답변

3

왜 가입하지 않습니까? 나는이에 새로운 해요, 정말 나를 위해 혼란 가입하기 때문에

SELECT a.ime_tarife, b.price 
FROM tarife a 
     INNER JOIN telefoni_dodatak b 
      ON a.id = b.tarifa_id 
WHERE b.telefoni_id = 35 
+0

는 : 나는에 대한 공식 문서에서 가입 읽은 난 그냥 그것을 얻을 아니에요 : 여기의 –

+1

방문 [의 시각적 표현 SQL 조인] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html) –

+0

감사합니다. 훌륭한 링크입니다! 나는 당신의 코드를 시도 할 것이다. –

관련 문제