Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择带有2个表的查询_Php_Mysql - Fatal编程技术网

Php 选择带有2个表的查询

Php 选择带有2个表的查询,php,mysql,Php,Mysql,我有一个页面,人们可以在这里发表评论,也有一个页面,人们可以点击“关注”其他人的个人资料(和Facebook上的一样) 我想让SELECT query发布我所有的评论,但会按照以下方式进行排序: 首先,打印你点击关注的最新用户的2条最新评论(必须在本周发布)。 第二,发布其余已发布的内容,按创建日期排序 (我正在使用linux时间) 你能帮我做SQL查询吗 这是我当前的选择查询。它按创建日期提取所有注释: SELECT id, userID, text, createDate FROM `co

我有一个页面,人们可以在这里发表评论,也有一个页面,人们可以点击“关注”其他人的个人资料(和Facebook上的一样)

我想让SELECT query发布我所有的评论,但会按照以下方式进行排序: 首先,打印你点击关注的最新用户的2条最新评论(必须在本周发布)。 第二,发布其余已发布的内容,按创建日期排序

(我正在使用linux时间)

你能帮我做SQL查询吗

这是我当前的选择查询。它按创建日期提取所有注释:

 SELECT id, userID, text, createDate FROM `comments` AS comment WHERE (comment.refID = 0) AND (comment.pageName = 'yard') AND 1=1 ORDER BY comment.createDate DESC LIMIT 0, 20
“followers”表如下所示:

userID  ownerID     createDate
1       2           1439019657
1       4           1438940399
“注释”表看起来像这样:

 id     userID  pageName    refID   text    createDate
220      1       yard       0       text1    1438030967
227      1       yard       0       text2    1438031704
228      1       yard       0       text3    1438031704

我可能把追随者的关系搞砸了。对于完整上下文,示例数据看起来不完整。它肯定会显示userID=1的注释,但要么没有跟随userID=1的人,要么3和4都跟着他。不知道refID在comments表中做什么。不管怎样,查询只显示一个概念-您将了解详细信息

SELECT un.* FROM ((
    SELECT 1 as priority, comment.id, comment.userID, comment.text, comment.createDate
    FROM `comments` as comment
    INNER JOIN `followers` as follower ON follower.userID = comment.userID
    WHERE comment.refID = 0
      AND comment.pageName = 'yard'
      AND ...
    ORDER BY follower.createDate DESC LIMIT 2
) UNION DISTINCT (
    SELECT 2 as priority, id, userID, text, createDate
    FROM `comments` as comment
    WHERE comment.refID = 0
      AND comment.pageName = 'yard'
)) as un ORDER BY un.priority, un.createDate DESC LIMIT 20

我可能把追随者的关系搞砸了。对于完整上下文,示例数据看起来不完整。它肯定会显示userID=1的注释,但要么没有跟随userID=1的人,要么3和4都跟着他。不知道refID在comments表中做什么。不管怎样,查询只显示一个概念-您将了解详细信息

SELECT un.* FROM ((
    SELECT 1 as priority, comment.id, comment.userID, comment.text, comment.createDate
    FROM `comments` as comment
    INNER JOIN `followers` as follower ON follower.userID = comment.userID
    WHERE comment.refID = 0
      AND comment.pageName = 'yard'
      AND ...
    ORDER BY follower.createDate DESC LIMIT 2
) UNION DISTINCT (
    SELECT 2 as priority, id, userID, text, createDate
    FROM `comments` as comment
    WHERE comment.refID = 0
      AND comment.pageName = 'yard'
)) as un ORDER BY un.priority, un.createDate DESC LIMIT 20

期望的结果是这样的期望的结果是这样的