【问题标题】:Select user entries and following entries at the same time with MySQL使用 MySQL 同时选择用户条目和以下条目
【发布时间】:2012-08-22 01:13:47
【问题描述】:

我有一个 MySQL 数据库,其中包含一个照片表(包含照片)和一个关注表(包含有关用户关注用户的信息)。

我有以下代码来加载当前用户关注的用户的照片:

SELECT photos.* FROM photos,follows 
WHERE follows.following = photos.uid AND 
      follows.follower=$current_uid 
ORDER BY photos.id DESC

我想加载我的用户上传的照片以及用户正在关注的照片的列表。我尝试了以下方法,但我不断收到一大堆重复的条目:

SELECT photos.* 
FROM photos,follows 
WHERE (follows.following = photos.uid AND 
       follows.follower=$current_uid) OR 
       photos.uid=$current_uid
ORDER BY photos.id DESC

有人可以帮忙吗?

【问题讨论】:

    标签: mysql database photo


    【解决方案1】:

    试试这个:

    SELECT
      photos.*
    FROM
      photos
    LEFT OUTER JOIN
      follows
    ON
      photos.uid = follows.following AND follows.follower = $current_uid
    WHERE
      photos.uid = $current_uid
    OR
      follows.following IS NOT NULL
    

    或者:

    SELECT
      photos.*
    FROM
      photos
    WHERE
      photos.uid = $current_uid
    OR
      photos.uid IN (SELECT following FROM follows WHERE follower = $current_uid)
    

    【讨论】:

    • 谢谢!工作完美!我总是对连接感到困惑,所以这为我清除了一些。
    • 通过说您想从两个表中进行选择,但没有在查询的OR 部分中指定链接它们的任何条件,您基本上是告诉数据库给您$current_uid 配对的照片下表中的每一行(所有用户)。因此所有的重复。如果可以,请单击此答案左侧的大勾号图标以表明您的问题已解决。
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多