我在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}
答案 0 :(得分:3)
你的where子句没有连接条件。它会创建一个我猜的结果的笛卡尔积。
因此,当您从两个表中选择时,您有两个表,它为您提供结果集的Cartesian Product或AX中所有行中的所有行。您需要做的是将两个表链接在一起即将它们联系起来。 select * from User as U,Notes as N where U.ID = N.UserID
然后添加其他约束。