我的mysql结果集是重复的?为什么

时间:2010-10-25 03:17:37

标签: php mysql duplicates

我在mysql上执行此查询,但它给了我重复的结果集:

这是我的疑问:

SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt, m.votes_up
FROM user u, notes m
WHERE m.topic_id =14
ORDER BY m.dt DESC

我不明白为什么要这样做?请帮忙:))

编辑:表架构

notes{id, user_id, topic_id, user_note, reply_id, reply_name, votes_up, dt}
user {user_id, username, password, email, full_name, picture, date_join}

1 个答案:

答案 0 :(得分:3)

你的where子句没有连接条件。它会创建一个我猜的结果的笛卡尔积。


因此,当您从两个表中选择时,您有两个表,它为您提供结果集的Cartesian Product或AX中所有行中的所有行。您需要做的是将两个表链接在一起即将它们联系起来。 select * from User as U,Notes as N where U.ID = N.UserID然后添加其他约束。