Alexey Posted August 29, 2020 Report Share Posted August 29, 2020 Здравствуйте, нужна ваша помощь в запросе 2 таблиц. В общем один чел с форума мне помог, но в результате кое что не учли, и теперь есть проблема в запросе. Вот запрос: "SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` tb2 ORDER by task_id ASC LIMIT 0, 300" Но мне нужно сделать так, что бы выводились все задания. И сортировка была под каждое задание, если в базе "wf_done" например нет полей, то устанавливать status = 0 Не понимаю в чем ошибка, не особо дружу с sql прочитал кучу документации с работой с 2 таблицами, но видимо не понимаю. Либо если такое не возможно, предложите как переписать 2 таблицы, либо вариант использования Link to comment Share on other sites More sharing options...
KirKMS Posted August 29, 2020 Report Share Posted August 29, 2020 Начнём с того откуда выводить данные с wf_done? Или тебе нужно выводить каждому пользователю их задания>? Цитата если в базе "wf_done" например нет полей, то устанавливать status = 0 А как она у тебя вообще там заноситься? И что значит если нет полей, то там поставить значение статуса 0? Лично я так понимаю!!!Есть 2 таблицы.В первой список всех заданий.Она называется wf_task. Там только задания.Есть вторая таблица wf_done где хранятся все пользователи которые хотят выполнять задания. Или же их там нет?И строка туда заноситься при нажатие выполнить задание>? Если нужно вывести список всех заданий пользователя, то WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id. "SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id ORDER by task_id ASC LIMIT 0, 300" Но это выведет все задания пользователя. Чтоб отсортировать статус.Добавь AND tb.2status = 0 или 1 или 2 итд. "SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id AND tb.2status = 0 или 1 или 2 итд ORDER by task_id ASC LIMIT 0, 300" Тогда отсортирует по id задания по id пользователя и по типу статуса . Писал на коленке.Могут быть ошибки.Но смысл понятен думаю.Если что пиши в вк.Помогу когда свободен. Link to comment Share on other sites More sharing options...
Alexey Posted August 29, 2020 Author Report Share Posted August 29, 2020 2 часа назад, KirKMS сказал: Начнём с того откуда выводить данные с wf_done? Или тебе нужно выводить каждому пользователю их задания>? А как она у тебя вообще там заноситься? И что значит если нет полей, то там поставить значение статуса 0? Лично я так понимаю!!!Есть 2 таблицы.В первой список всех заданий.Она называется wf_task. Там только задания.Есть вторая таблица wf_done где хранятся все пользователи которые хотят выполнять задания. Или же их там нет?И строка туда заноситься при нажатие выполнить задание>? Если нужно вывести список всех заданий пользователя, то WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id. "SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id ORDER by task_id ASC LIMIT 0, 300" Но это выведет все задания пользователя. Чтоб отсортировать статус.Добавь AND tb.2status = 0 или 1 или 2 итд. "SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND tb1.тут id текущего пользователя= tb2.user_id AND tb.2status = 0 или 1 или 2 итд ORDER by task_id ASC LIMIT 0, 300" Тогда отсортирует по id задания по id пользователя и по типу статуса . Писал на коленке.Могут быть ошибки.Но смысл понятен думаю.Если что пиши в вк.Помогу когда свободен. Таблица wf_done это список где пользователи выполнили свои задания, и если нет записи то автоматически выдавать status = 0 Такое возможно? Link to comment Share on other sites More sharing options...
Recommended Posts