2015-05-09 2 views
1

У меня есть SQL заявление, как это:Множественный оператор выбора с заказом по

SELECT * FROM USERS WHERE USER_ID IN (SELECT REQUEST_FROM FROM REQUESTS WHERE REQUEST_TO = '$user_id' ORDER BY REQUEST_ID ASC); 

Это оператор возвращает информацию пользователей из таблицы пользователей, где идентификатор пользователя находится в REQUEST_FROM.

У меня также есть REQUEST_DATE в таблице REQUESTS. Я хотел бы заказать результаты этого заявления REQUEST_DATE.

Я не знаю, достаточно ли этой информации для вас. Я могу предоставить дополнительную информацию о sql.

+0

Какова природа отношений между пользователями и ПРОСИТ таблицы? это «0,1» или «0, n»? – watou

+0

один для многих, я думаю. – cyonder

+0

Если у вас есть пользователь, который сделал много запросов с разными значениями REQUEST_DATE, какое значение REQUEST_DATE желает использовать для заказа списка пользователей? – watou

ответ

1

Попробуйте этот код:

SELECT u.* 
FROM USERS u , REQUESTS r 
WHERE (r.REQUEST_TO = '$user_id') and (u.USER_ID = r.REQUEST_FROM) 
ORDER BY r.REQUEST_DATE ASC; 
0

Используйте явное join вместо in:

SELECT u.* 
FROM USERS u JOIN 
    REQUESTS r 
    ON u.USER_ID = r.REQUEST_FROM 
WHERE r.REQUEST_TO = '$user_id' 
ORDER BY r.REQUEST_DATE ASC; 
+0

Это не работает, к сожалению. – cyonder

+0

ORDER BY r.REQUEST_DATE ASC; – watou

+0

Да, я так и сделал, но не работал. возвращает пустое. – cyonder

Смежные вопросы