在PHP中显示来自2个表的2个筛选列
我有两个表-users和users\u audit,需要将两个单独查询的结果显示为两列,并相互关联。我已经解决了这两个问题 用户查询:在PHP中显示来自2个表的2个筛选列,php,mysql,Php,Mysql,我有两个表-users和users\u audit,需要将两个单独查询的结果显示为两列,并相互关联。我已经解决了这两个问题 用户查询:选择rowid,columnid=1的用户的数据按rowid分组 +-------+------------+ | rowid | data | +-------+------------+ | 1 | John | | 2 | Abi | | 3 | Tony | | 4 | Gr
选择rowid,columnid=1的用户的数据按rowid分组代码>
+-------+------------+
| rowid | data |
+-------+------------+
| 1 | John |
| 2 | Abi |
| 3 | Tony |
| 4 | Gregg |
| 5 | Jon |
| 6 | Victor |
| 7 | Daniel |
查询用户\u审核:选择从用户\u审核创建的日期,其中rowid=6按日期\u创建描述,日期\u创建描述限制1代码>
查询的目的是显示为特定rowid创建的最新日期
+---------------------+
| date_created |
+---------------------+
| 2012-07-04 09:20:12 |
+---------------------+
表users\U audit如下所示:
SELECT * FROM users_audit;
+-------+---------+--------------+-------------+---------------------+
| id | rowid | before_value | after_value | date_created |
+-------+---------+--------------+-------------+---------------------+
| 1 | 6 | 3 | 5 | 2012-06-29 15:48:11 |
| 2 | 5 | Out (0) | 2 | 2012-07-04 09:20:10 |
| 3 | 6 | 5 | 4 | 2012-07-04 09:20:12 |
| 4 | 7 | 3 | 6 | 2012-07-04 09:20:14 |
| 5 | 3 | 2 | 3 | 2012-07-04 09:20:16 |
| 6 | 15 | 6 | 5 | 2012-07-04 09:20:22 |
我需要为每个rowid显示两列-来自用户的数据和从用户创建的日期。这意味着必须为每个rowid(在循环中?)运行对用户的查询
在php中显示的预期结果是:
+------------+----------------------+
| data | date_created |
+------------+----------------------+
| John | (latest date) |
| Abi | (latest date) |
| Tony | (latest date) |
| Gregg | (latest date) |
| Jon | (latest date) |
| Victor | 2012-07-04 09:20:12 |
| Daniel | (latest date) |
在php中如何实现这一点?为什么不能创建一个视图并使用连接来创建所需的表
SELECT users.data, users_audit.date_created FROM users
INNER JOIN users_audit ON users.rowid = users_audit.rowid
还是我在这里遗漏了什么
编辑
我相信这应该管用。。?让我知道。这还不错,差不多,问题是这个查询将显示rowid 6(Victor)的id 1和3,我只想显示每个rowid的最新记录-它由用户审核中的最高id或最近日期表示,还需要保留columnid=1 GROUP BY rowid的第一条语句的这一部分,因为它过滤users表(它有更多的记录)。。。感谢以下内容在某种程度上对我有用:选择users.data,users\u audit.date\u从用户内部创建加入用户\u audit ON users.rowid=users\u audit.rowid,其中columnid=1;但是仍然需要只显示每个用户的最新日期。\u audit.rowid,知道吗?我会尝试修改我对max date的回答。它似乎不起作用,它给出:错误1242(21000):子查询返回多行如果我按rowid删除GROUP,那么我会得到多个结果,但只针对rowid 13(最后一个编辑表的人…)
SELECT users.data, users_audit.date_created FROM users
INNER JOIN users_audit ON users.rowid = users_audit.rowid
WHERE users_audit.date_created = (SELECT MAX(date_created) from users_audit
GROUP BY rowid)