Avenus
Under Glory Yield
Как изменить запрос с исключением поля?
Привет всем!
Кто может подсказать как мне изменить запрос на выборку, в котором нужно и проверку на совпадение по одному полю и при этом исключение по другому полю.
Две таблицы:
T1: Old, Type, ...
T2: New, User, Sel...
Делаю SELECT из T1 пару разных order by rand() строк.
Я, к примеру, - пользователь и выбираю из 2-х других пользователей с Old1 и Old2 одного.
После этого INSERT в T2 значения New1=Old1 и New2=Old2... для каждой строки в User пишу себя,
а в Sel пишу 1 только для выбранного. Для того, которого не выбрал - пишу 0.
Вот, собственно, сделал просто, но выборка не получается с проверкой на уже показанных
Т.е. как мне теперь выбрать из 1-й таблицы другую пару с Old3 и Old4 так, чтобы они мне уже не показывались?
Самое важное! Выбор обязательно должен быть order by rand()!
Получается дополнительная проверка полей в T1 и T2 с совпадением на T1.Old=T2.New и T2.User!="Я", но это невозможно сделать... ничего не выберется.
Единственное, как получается, это выбор, потом проверка, показывался ли мне уже.
И если совпадение, то снова запрос... и так цикл... полный отстой!
Особенно когда будет выбор маленький... цикл будет длиться с order by rand() очень долго.
Можно ли сделать другим способом?
Привет всем!

Кто может подсказать как мне изменить запрос на выборку, в котором нужно и проверку на совпадение по одному полю и при этом исключение по другому полю.
Две таблицы:
T1: Old, Type, ...
T2: New, User, Sel...
Делаю SELECT из T1 пару разных order by rand() строк.
Я, к примеру, - пользователь и выбираю из 2-х других пользователей с Old1 и Old2 одного.
После этого INSERT в T2 значения New1=Old1 и New2=Old2... для каждой строки в User пишу себя,
а в Sel пишу 1 только для выбранного. Для того, которого не выбрал - пишу 0.
Вот, собственно, сделал просто, но выборка не получается с проверкой на уже показанных

Т.е. как мне теперь выбрать из 1-й таблицы другую пару с Old3 и Old4 так, чтобы они мне уже не показывались?
Самое важное! Выбор обязательно должен быть order by rand()!
Получается дополнительная проверка полей в T1 и T2 с совпадением на T1.Old=T2.New и T2.User!="Я", но это невозможно сделать... ничего не выберется.
Единственное, как получается, это выбор, потом проверка, показывался ли мне уже.
И если совпадение, то снова запрос... и так цикл... полный отстой!
Особенно когда будет выбор маленький... цикл будет длиться с order by rand() очень долго.
Можно ли сделать другим способом?