им с трудом, с большим сложным запросом я писал:SQL - очень сложный запрос
SELECT e.id, e.name,e.age, e.area, e.date,e.private, e.place, p.*, COUNT(user) AS attending
FROM events AS e
LEFT OUTER JOIN
(SELECT user, event
FROM attendance
) AS a
ON a.event = e.id
LEFT OUTER JOIN
(SELECT name AS place_name, id as idd, nz AS place_loc, coor
FROM places
) AS p
ON p.idd = e.place
where (e.age LIKE "%{17-18}" OR e.age LIKE "%{18-19}" OR e.area LIKE "%{1}" OR e.area LIKE "%{2}" OR e.area LIKE "%{4}" OR e.area LIKE "%{6}" OR e.area LIKE "%{32}" OR e.area LIKE "%{37}" OR e.private LIKE '%id%')
GROUP BY e.id, e.name
ORDER BY attending DESC
limit 0,7
Этот запрос даст мне события, он сортирует их по таблице посещаемости, а также он дает мне информацию о месте что событие включено.
В любом случае проблема в зоне WHERE ... каждый пользователь имеет разные возрасты и области. Пример: возрастов: {17-18}, {20-22} областей: {0}, {1}, {2}
У каждого события есть одно и то же - возрасты и области ... я пытаюсь найти совпадение:
если установлено событие: age- {15-16}, {17-18}, и пользователь установил хотя бы один из них, он будет соответствовать.
Я не возражаю, изменяя способ хранения веков и областей. Я уверен, что я не делаю это хорошо, используя {}, все, что я хочу, - это способ задать предпочтения пользователя, где он может сохранять коды областей и возраст, а затем я хочу выбрать из событий только событие, которое совпадает с возрастом пользователя и областями.
большое спасибо! very appriciated
Woah, проблема не * просто * где область. Вам не нужно столько подзапросов, вы можете просто использовать таблицы во внешнем соединении ... – Konerak
И, к сожалению, это НЕ сложный запрос. Сложный запрос по крайней мере в 5 раз длиннее. * * Очень сложный запрос - 10 КБ при сохранении в текстовом файле. :) –
Связаны ли места и области? Или «область» означает «область интересов» (например, компьютеры, танцы, боевые искусства и т. Д.)? –