2013-07-05 4 views
0

임의의 행을 선택하고 특정 열을 기준으로 정렬하는 방법을 알고 있지만 문제는 다른 테이블의 열을 기준으로 행을 정렬해야한다는 것입니다.임의의 행을 선택한 다음 다른 테이블의 열을 기준으로 정렬

예 : CREATION_DATE는 이벤트 테이블에 있다면

SELECT * 
FROM (
    SELECT event_id, data_id 
    FROM events 
    WHERE category_id=1 
    ORDER BY RAND() 
    LIMIT 5) c 
ORDER BY creation_date; 

그래서이 쿼리가 잘 작동,하지만 CREATION_DATE는 '데이터'라는 테이블에 있습니다. 따라서 이벤트 테이블의 data_id는 creation_date가있는 데이터 테이블의 외래 키입니다.

내 목표는 이벤트 테이블에서 5 개의 RANDOM 행을 선택한 다음 데이터 테이블의 creation_date로 정렬하는 것입니다.

도움을 주시면 감사하겠습니다.

답변

2
SELECT * 
FROM (
    SELECT 
    event_id, 
    data_id 
    FROM 
    events 
    WHERE 
    category_id = 1 
    ORDER BY RAND() 
    LIMIT 5) c 
    INNER JOIN data d ON d.data_id = c.data_id 
ORDER BY 
    d.creation_date; 
+0

완벽하게 작동합니다! 고맙습니다. :) – Jonny07

관련 문제