我需要写一个查询,我什至不知道从哪里开始。我有一组未创建且无法更改的表。
member table
+----+-------+
| id | class |
+----+-------+
| 1 | 1 |
| 2 | 2 |
+----+-------+
member_data table
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
| 1 | John | Jones |
| 2 | Juan | Jones |
+----+------------+-----------+
member_entries table
+----+-----------+-------+------------+
| id | member_id | title | date |
+----+-----------+-------+------------+
| 1 | 1 | test1 | 1265042580 |
| 2 | 1 | test2 | 1265042581 |
| 3 | 2 | test3 | 1265042582 |
| 4 | 3 | test4 | 1265042583 |
+----+-----------+-------+------------+
我需要选择id,member_data中的first_name,member_entries中的最新标题以及与member_id匹配的member_entries总数。我需要能够选择成员表在第一个表中是某个数字的位置。我还需要能够通过任何这些列进行订购。如果选择成员类为1的成员,这就是我需要的输出。
+----+------------+-------+------------+
| id | first_name | title | date |
+----+------------+-------+------------+
| 1 | John | test2 | 1265042581 |
+----+------------+-------+------------+
最佳答案
SELECT m.id, md.first_name, me.title, me.date
FROM member m
INNER JOIN member_data md ON md.id = m.id
INNER JOIN member_entries me on me.id = m.id
WHERE me.date =
(SELECT MAX(date) FROM member_entries WHERE id = m.id)
AND m.class = 1
关于mysql - MySQL查询帮助-复杂的联接/按场景排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2178412/