2

私は2つのテーブルを持っています。テーブルの1つにはユーザーからのすべてのメールがあり、他のテーブルにはユーザーからのすべての呼び出しがあります。

Table 1
call_id, | call_date | user_id 
1        |   10/01/12|    3 
2        |   9/01/12 |    3 

Table 2 
mail_id, | mail_date | user_id
1        |   8/01/12 |    3
2            7/01/12 |    3

最後の3つの電話とメールを取得する必要があります:10/01/12-9/01/12に電話-8/01/12に電話-メール

4

2 に答える 2

2

MySQL を想定し、たった 1 つの User_ID に対して...

SELECT
   *
FROM
(
  SELECT 'call' AS type, id, call_date AS event_date, user_id FROM table_1
  UNION ALL
  SELECT 'mail' AS type, id, mail_date AS event_date, user_id FROM table_2
)
  data
WHERE
  user_id = 3
ORDER BY
  event_date DESC
LIMIT
  3

編集:DESCおっと、 で指定するのを忘れていましたORDER BY。申し訳ありません。

于 2012-08-13T15:01:09.503 に答える
0
Declare @userID int;
SET @userID=3;

select call_id FROM table_1 
where user_id=@userID
order by call_date desc limit 2

UNION ALL

select mail_id FROM table_2
where user_id=@userID
order by mail_date desc limit 1
于 2012-08-13T15:07:00.560 に答える