Php mySQL PDO选择特定于用户的GROUP BY/ORDER BY/LIMIT WHERE(两个链表)

Php mySQL PDO选择特定于用户的GROUP BY/ORDER BY/LIMIT WHERE(两个链表),php,mysql,select,pdo,group-by,Php,Mysql,Select,Pdo,Group By,我需要一个特定于用户的mySQL,选择n个不同主题中的最后n个条目 我有两个表:区域和帖子 区域具有列id、坐标和用户id posts创建了列iD、主题、内容、区域iD 每行中的aREAid的值是的对应id 面积表。这意味着两个表之间的链是:id 面积 表“区域”中的用户特定查询: 要在表“帖子”中的15个不同主题中显示最后15个条目: 我可以做一个功能: while ($areaRow = $go4Row1->fetch(PDO::FETCH_ASSOC)) { echo' sh

我需要一个特定于用户的mySQL,选择n个不同主题中的最后n个条目

我有两个表:区域帖子

区域具有列id、坐标和用户id

posts创建了列iD、主题、内容、区域iD

每行中的aREAid的值是的对应id 面积表。这意味着两个表之间的链是:id 面积

表“区域”中的用户特定查询:

要在表“帖子”中的15个不同主题中显示最后15个条目:

我可以做一个功能:

while ($areaRow = $go4Row1->fetch(PDO::FETCH_ASSOC)) {
    echo' show: '.$areaRow['id'].' with coordinates: 
        '.$areaRow['coordinates'].' userID: '.$areaRow['userID'].'<br>';
}
while($areaRow=$go4Row1->fetch(PDO::fetch_ASSOC)){
echo“show:”.$areaRow['id'].',带坐标:
“.$areaRow['coordinates']”用户ID:“.$areaRow['userID']”。
”; }
或一种功能:

while ($latestRow = $latest_n_distinct_posts->fetch(PDO::FETCH_ASSOC)) {
     echo' last date: '.$latestRow['cREATED'].' with topic: 
         '.$latestRow['tOPIC'].' text: '.$latestRow['cONTENT'].'<br>';
}
while($latestRow=$latest\n\u distinct\u posts->fetch(PDO::fetch\u ASSOC)){
回显“最后日期:”.$latestRow['cREATED']”,主题为:
“.$latestRow['tOPIC']”文本:“.$latestRow['cONTENT']”。
”; }
但是,我没有找到一个有效的解决方案,将id区域id的限制链接起来,从而使posts查询特定于用户。 我不确定是否有必要创建一个带有aREAid的数组,并使用IN子句生成所需的“bloc”/“filteredpopulation”,然后从中使用GROUP BY/ORDER BY/LIMIT。(但我希望有一个更简单的解决方案……)

如果有人能给我一个提示/帮助我解决这个问题,我会非常高兴

Thanx提前, -流动

p、 美国确实将列名从文本更改为内容-以避免使用关键字(这是一个关键字列表,您可能会感兴趣。预期会有更多单词:)


p、 另外,这是一个示例代码。“来源”有不同的列名,每个查询本身都工作正常。

根据对这个问题的糟糕回答,我认为SQL不是解决这个问题的正确方法。 因此,我的方法是通过PHP进行过滤和链接。 有很多可用的php数组函数:

到目前为止,我的步骤是:
  • 从查询创建两个数组(ASSOC)
  • 创建目标数组,用于添加所有“子数组”
  • 创建一个正在大海捞针的函数,如果搜索成功,则将整个子数组带到目标数组


    最后,我有一个特定于用户的目标数组,用于使用foreach循环进行迭代,并逐行回显键的值。

    注意:
    text
    是mysql关键字,可能会导致问题。它是一种数据类型。您需要用倒钩(`)将其包装起来,才能将其用作列名。此外,您通常需要按您选择的不在聚合函数中的每一列进行分组。如果您不这样做,Mysql 5.7现在将抛出错误。因此,如果你打算升级mysql,最好现在就升级。谢谢你的提示,乔纳森!不幸的是,我不需要等待升级-查询确实产生了一些奇怪的结果(有时有效,有时无效/顺序错误)。但是,我可以按照以下示例创建自适应来解决此问题:
    while ($areaRow = $go4Row1->fetch(PDO::FETCH_ASSOC)) {
        echo' show: '.$areaRow['id'].' with coordinates: 
            '.$areaRow['coordinates'].' userID: '.$areaRow['userID'].'<br>';
    }
    
    while ($latestRow = $latest_n_distinct_posts->fetch(PDO::FETCH_ASSOC)) {
         echo' last date: '.$latestRow['cREATED'].' with topic: 
             '.$latestRow['tOPIC'].' text: '.$latestRow['cONTENT'].'<br>';
    }