Gozar, пора уже самому книги писать и издавать. ;)
|
удалено.
|
Gozar, я бы даже сказал, что я свою точку зрения в такой форме высказал. Смотреть аниме с русской озвучкой - уныло и вызывает когнитивный диссонанс
а по поводу книг, я считаю, если писать, то лучше на английском (lingua franca, ёпт). Да и очень мало хороших книг, наверное, на пальцах можно пересчитать (или я об интересных сейчас говорю?). В большинстве случаев лучше писать статьи |
кстати, по поводу SQL, могу вам задачку подкинуть, не то чтобы что-то сложное, но явно выходит за пределы основных запросов. И не что-то сферическое. А задача такая:
Есть пользователи. Они могут "банить" друг друга, при чем в результате ни ты его не видишь, ни он тебя. Как найти пару для некоторого заданного пользователя (чтобы он никого лишнего не увидел, естественно)? |
Цитата:
|
Цитата:
|
удалено.
|
чтобы задание не казалось таким сферическим, расскажу поподробнее. Видео-чат-рулетка. Ты видеочатишься со случайными людьми. И пообщавшись с одним персонажем ты понимаешь, что больше общаться с ним не хочешь. Соответственно надо чтобы ни ты на него не натыкался, ни он на тебя. Поссорились...
найти пару для некоторого пользователя, следовательно, означает найти следующего первого попавшегося, за исключением, что "поссорившиеся" не должны друг на друга наткнуться опять структуру таблиц выбираешь сам |
SELELECT id FROM users U WHERE ISNULL((SELECT id FROM banUsers WHERE WhoBanID='{$userID}' && WhomBanID=U.id || WhomBanID='{$userID}' && WhoBanID=U.id )) Структура banUsers { id : int(11) auto_increment, WhoBanID: int(11) unsigned, WhomBanID: int(11) unsingned } |
во-первых, а без подзапроса, тем более связанного (correlated)?
во-вторых, (WhoBanID, WhomBanID) - это уже первичный ключ в-третьих, я б not exists тогда уж использовал в-четвертых, может ответы стоит каким-нибудь белым цветом писать |
Часовой пояс GMT +3, время: 14:18. |