从第三个表中的user_id获取表中的值

时间:2013-04-19 16:01:02

标签: mysql sql

为了学习目的,我创造了一个类似的推特...... 我现在正在尝试创建一个查询,以便用户可以关注其他用户。

我有四个表 - 用户,用户详细信息和推文。

下表仅使用三行主键ID,user_ID和后续ID。 因此,计划是如果我(用户1)调用following_id(2),我将从表推文获得所有结果,其中消息与user_id一起存储。

但是当我打电话给桌子时,我只得到了两行。由user_id。而不是按消息ID分组。

这是我的查询,只给了我2个结果。

SELECT user.email, user.username, tweets.message, tweets.date, userdetails.profile_img, userdetails.firstname, userdetails.lastname, following.id, following.user_id, following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN tweets ON userdetails.user_id = tweets.user_id
JOIN following ON tweets.id = following.follow_id
GROUP BY tweets.message

表结构。

    Following
    id | user_id | follow_id

    Tweets
    user_id|id|date|message

    user
    id|email|password|username

    userdetails
    id|firstname|lastname|profile_img|user_id|about

但是这里的出版物变成了

email|username | message | date |profile_img |firstname |lastname |id |user_id
1. email 1...username message date......
2 .email 2........username message date.....
想法?或者我认为下面的表格错了吗?

1 个答案:

答案 0 :(得分:1)

您非常接近正确的查询:只需替换

 tweets.id = following.follow_id

 tweets.user_id = following.follow_id