Нужно чтобы из tasks не показывались те материалы, id которых записан в tasks_done.
SELECT ...
FROM `tasks`
INNER JOIN `users` ON tasks.tfrom = users.uid
INNER JOIN `tasks_done` ON tasks.tid != tasks_done.tdtid
ORDER BY tasks.tamount DESC LIMIT 10
С самим запросом всё нормально. Но вот ON tasks.tid != tasks_done.tdtid
не хочет срабатывать.
Структура таблицы tasks -
Структура таблицы users -
- Структура таблицы tasks_done -
Не смотрели в сторону LEFT (RIGHT) OUTER JOIN?
UPD*#1*: Попробуйте такой запрос:
SELECT *
FROM tasks
INNER JOIN users ON tasks.tfrom = users.uid
LEFT OUTER JOIN tasks_done ON tasks.tid = tasks_done.tdtid
WHERE tasks_done.tdtid is null
Кому интересно, поколдовал с LEFT OUTER JOIN и всё прекрасно стало работать:
SELECT ...
FROM `tasks`
LEFT OUTER JOIN `users` ON tasks.tfrom = users.uid
LEFT OUTER JOIN `tasks_done` ON tasks.tid = tasks_done.tdtid
WHERE tasks_done.tdtid is null
ORDER BY tasks.tamount DESC LIMIT 10
А ответ @Rams666 помечаю как правильный, так как помог с направлением.
@alexlz, тебе тоже спасибо большое за помощь. Напиши что-то в виде ответа, я поставлю палец вверх, чтобы к тебе карма начислилась :)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Берется id, происходит парсинг, данные записываются, читаются, но если я опять ввожу тот же id, то опять происходит парсинг, а не вывод информации...
После регистрации пользователю записывается в базу данных (поле date_reg тип DATE) дата регистрации, вот как подсчитать и вывести количество дней...
Всем добрый день! Ребята,помогите ошибку найти в коде: