2013-08-02 43 views
0

我遇到了问题。我是MySQL新手。到目前为止,我只需要简单的查询,并且一切正常。但是,现在我有一个问题。我有两个表:MySQL从两个表中选择基于URL的URL

  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,并且它也表telefoni_dodatak当作使用telefoni_id

tarifa_id具有来自表tarife的id编号。

我不得不从URL www.example.com/phones/35/得到这样的输出HTML,基于ID:

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的url。

P.S.此查询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

因为我是新在此,并加入真的困惑了我:)我读过从官方的文档有关JOIN和我只是不明白:■ –

+1

访问这里,[可视化表示SQL Joins](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html) –

+0

谢谢,那是非常棒的链接!我要去尝试你的代码。 –