基于来自URL的ID的两个表中的MySQL SELECT

时间:2013-08-02 19:54:07

标签: mysql pdo

我有问题。我是MySQL的新手。到目前为止,我只需要简单的查询,一切正常。但是,现在我有一个问题。我有两张桌子:

  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 |
    +----+--------------+-----------+-------+
    
  3. 此表中的所有值均为整数。

    我有这样的网址www.example.com/phones/35/,其中数字35表示页面的ID(在第三个表中使用),并且它也在表telefoni_id中写为telefoni_dodatak

    tarifa_id具有表tarife中的ID号。

    我必须根据来自网址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是来自网址的第35号。

    P.S。此查询SELECT * FROM telefoni_dodatak WHERE telefoni_id = :id运行正常,我的价格分别为650和700.

    提前感谢您的帮助!

1 个答案:

答案 0 :(得分: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