MySQL запрос справки - сложное соединение / порядок по сценарию - PullRequest
0 голосов
/ 01 февраля 2010

Мне нужно написать запрос, и я даже не уверен, с чего начать. У меня есть набор таблиц, которые я не создал и не могу изменить.

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, first_name из member_data, самый последний заголовок member_entries и общее количество member_entries, соответствующее member_id. Мне нужно иметь возможность выбрать, где класс члена является определенным числом в первой таблице. Мне также нужно иметь возможность заказать по любому из этих столбцов. Это то, что мне нужно для вывода, если я выбрал элементы с классом элемента 1.

+----+------------+-------+------------+
| id | first_name | title |    date    |
+----+------------+-------+------------+
|  1 |       John | test2 | 1265042581 |
+----+------------+-------+------------+

Ответы [ 2 ]

1 голос
/ 01 февраля 2010
 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
1 голос
/ 01 февраля 2010
SELECT member.id, member_data.first_name, member_entries.title, member_entries.date
FROM member
INNER JOIN member_data ON member.id = member_data.member_id
INNER JOIN member_entries ON member.id = member_entries.member_id
WHERE member.class = 1
ORDER BY member_entries.date DESC
LIMIT 1

и создайте предложения WHERE и ORDER BY по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...