0

私は問題があります。私はMySQLが初めてです。これまでのところ、必要なのは単純なクエリだけで、すべてうまくいきました。しかし、今私は問題を抱えています。私は2つのテーブルを持っています:

  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 |
    +----+--------------+-----------+-------+
    

この表の値はすべて整数です。

このような URL がwww.example.com/phones/35/あり、35 番がページの ID を表し (3 番目のテーブルで使用されます)、それもtelefoni_idtable のように書かれていますtelefoni_dodatak

tarifa_idには table の ID 番号がありますtarife

url からの id に基づいて、HTML で次のような出力を取得する必要がありますwww.example.com/phones/35/

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 番です。

PS このクエリSELECT * FROM telefoni_dodatak WHERE telefoni_id = :idは正常に機能します。価格 650 と 700 の両方を取得しています。

助けてくれてありがとう!

4

1 に答える 1

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
于 2013-08-02T19:57:06.797 に答える