Здравствуйте! Вопрос таков: есть таблица, которая естественно пополняется (таблица переписки между пользователями) структура такова - Код (Text): id date time from to 35 18-01-2013 13:18:46 siuzi_drum1 test 39 18-01-2013 13:42:05 test siuzi_drum1 40 18-01-2013 13:43:05 siuzi_drum1 test 41 18-01-2013 13:44:31 test siuzi_drum1 42 18-01-2013 14:47:10 redakt22or siuzi_drum1 43 18-01-2013 14:47:27 redakt22or siuzi_drum1 как составить sql запрос, чтобы выводилась переписка между test и siuzi_drum1 ? Я уже всю голову сломал.......... это ужс.. ошибки.... Спасибо =)
> Я уже всю голову сломал.......... это ужс.. Если это ужас, то я папа римский Код (Text): select * from table where (from = 'test' and to = 'siuzi_drum1') or (from = 'siuzi_drum1' and to = 'test')
Спасибо вам ребята! Я порпробовал Код (Text): select * from table where (from = 'test' and to = 'siuzi_drum1') or (from = 'siuzi_drum1' and to = 'test') но он выдал ошибку запроса. использовал union Код (Text): SELECT * FROM $table_mess_name WHERE `from` = '$mylogin' AND `to` = '$mes[from]' UNION SELECT * FROM $table_mess_name WHERE `from` = '$mes[from]' AND `to` = '$mylogin' ORDER BY id"
в первом запросе ошибка в выборе имени поля: from это служебное слово - сам-то не замечаешь? пиши только `from`, и вообще лучше переименуй, например from_user Добавлено спустя 8 минут 40 секунд: нафиг не нужно, но просто для поддержания разговора: добиться максимальной эффективности, можно с целочисленными id пользователей. позволяем себе некоторую избыточность пусть у нас будет два дополнительных поля: id1 INT // сюда помещаем min(from_id, to_id) id2 INT // сюда помещаем max(from_id, to_id) создаем составной индекс по двум полям (id1, id2) перед тем как из скрипта запросить переписку, вычислим min и max ID интересующих нас пользователей и пишем Код (Text): SELECT * FROM talk_table WHERE id1=:min_id AND id2=:max_id вуаля!
id пользователей хранятня в другой таблице cms MODx их еще одним сквелем выводить надо... Я примерно понял Вас, спасибо большое. Для меня пока это тяжело дается. Я не понял как прочитать запись id1=:min_id например, откуда оно появилось У нас было поле id1, в него пишется вычисление Код (Text): min(5,2) // то есть 2 в поле id2 пишется вычисление Код (Text): max(5,2) // то есть 5 id1=:min_id ? откуда появилась эта переменная?
да ниоткуда! замените на id1=$min_id если так в вас лучше входит. повторяю: Добавлено спустя 4 минуты 49 секунд: Я полагаю независимо от того какую CMS вы портите, там на самом деле под рукой ЕСТЬ нужные id. Скорее из ID вычислены имена пользователей, а не наоборот. Просто надо почитать внимательно.