mysql上的double值

时间:2013-12-06 20:48:11

标签: mysql database

我有这样的数据库架构:

poll_option:
+----+---------------------+
| question_id | option     |
+----+---------------------+
|      1      | forever    |
+----+---------------------+

poll_clicks:
+--------------------+------------+
| question| meta_key | meta_value |
+---------+----------+------------+
|    1    |     ip   |192.168.1.10| 
+---------+----------+------------+

result i want:
+--------------------+------------+
|  option | meta_key | meta_value |
+---------+----------+------------+
| forever |     ip   |192.168.1.10| 
+---------+----------+------------+

这是我的疑问:

SELECT p.* FROM poll_clicks p, poll_option m 
  WHERE m.question_id=p.question 

但我得到重复的价值观, 任何想法?

编辑:只需要将“选项”添加到“poll_click”结果

1 个答案:

答案 0 :(得分:0)

您的查询正在请求所有poll_clicks列,但您的预期结果包含两个表中的值。

至于“重复值”,如果你的意思是你得到多行,那么只有一种方法可以发生:一个或两个表都有重复的questionquestion_id值。 / p>

要获得正确的列,查询应该像这样开始:

SELECT m.option, p.meta_key, p.meta_value
...

您的加入是正确的,但它使用古老的语法。尝试这样做 - 它与您的连接具有相同的效果,但它将连接逻辑与您可能拥有的任何其他WHERE逻辑隔离开来:

SELECT m.option, p.meta_key, p.meta_value
FROM poll_clicks p
JOIN poll_option m ON m.question_id = p.question