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
は、このクエリは、それが出席テーブルによってそれらをソートし、私のイベントを与え、また、それは私の場所についての情報を提供しますイベントがオンであることを示します。
とにかく、問題はどこの地域...すべてのユーザーは異なる年齢と地域を持っています。例: 年齢:{17-18}、{20-22}地域:{0}、{1}、{2}
すべてのイベントは、年齢と地域が同じです。一致するものを見つける:イベントが設定されている場合:年齢 - {15-16}、{17-18}ユーザーが少なくとも1人は設定されていれば一致します。
私は年齢や地域を保存する方法を変更する心をいけない..私は、私は{}を使用して、それをうまくやっておりません確信して、私が望むすべては、彼が市外局番を保存することができ、ユーザの嗜好を設定するための方法であり、そして、私は、イベントから、ユーザーの年齢と地域を特定するイベントのみを選択したいと考えています。
ありがとうございました!非常にお気軽に
うわー、問題は*ただ*どこの領域ではありません。あまりにも多くのサブクエリは必要ありません。外部結合のテーブルを使うことができます... – Konerak
そして、申し訳ありませんが、これは複雑なクエリではありません。複雑なクエリは少なくとも5倍長くなります。テキストファイルに保存すると、*本当に*複雑なクエリは10KBになります。 :) –
場所とエリアは関係していますか?または、「エリア」とは「コンピュータ、ダンス、武道など」のような「関心領域」を意味しますか? –