我有问题。我是MySQL的新手。到目前为止,我只需要简单的查询,一切正常。但是,现在我有一个问题。我有两张桌子:
表tarife
+----+---------------+
| id | ime_tarife |
+----+---------------+
| 1 | Neka tarifa 1 |
| 2 | Neka tarifa 2 |
+----+---------------+
表telefoni_dodatak
+----+--------------+-----------+-------+
| id | telefoni_id | tarifa_id | price |
+----+--------------+-----------+-------+
| 1 | 35 | 1 | 650 |
| 2 | 35 | 2 | 700 |
+----+--------------+-----------+-------+
此表中的所有值均为整数。
我有这样的网址www.example.com/phones/35/
,其中数字35表示页面的ID(在第三个表中使用),并且它也在表telefoni_id
中写为telefoni_dodatak
。
列tarifa_id
具有表tarife
中的ID号。
我必须根据来自网址www.example.com/phones/35/
的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号。
P.S。此查询SELECT * FROM telefoni_dodatak WHERE telefoni_id = :id
运行正常,我的价格分别为650和700.
提前感谢您的帮助!
答案 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