У меня есть две таблицы:
Таблица 1: члены
mem_id mem_name
1 Name1
2 Name2
3 Name3
4 Name4
Таблица 2: пролистывания
swp_id swp_by swp_to
1 1 3
2 2 3
3 1 2
4 4 1
Здесь член с mem_id
1 пролистанными членами 2 и 3. Таким образом, член id 1 больше не должен видеть участников 2 и 3. Он должен видеть только члена 4, так как он еще не размахивал им. Аналогично, член 2 ударил члена 3, поэтому он больше не должен видеть участника 3, но должен видеть членов 1 и 4.
Мой текущий запрос, который я пробовал:
SELECT * FROM members
LEFT JOIN swipes ON members.mem_id = swipes.swp_to
WHERE mem_id != :mem AND swipes.swp_to IS NULL
Это решает только "половину" " проблема. С помощью этого запроса я могу получить тех пользователей, которые еще не прошли, т. Е. Еще не в swp_to
, но я не могу обнаружить пользователя, который проводит. Например, когда пользователь 1 ударил пользователя 2 и 3, этот запрос обнаруживает, что пользователь 2 и 3 был проведен, и, следовательно, больше не показываются, но их не следует показывать только пользователю 1 и все же следует показывать другим пользователям. Здесь они не показываются никому другому.
Я также пытался добавить AND swp_by = mem_id
в запрос, но это, кажется, не совсем правильно, поскольку его тоже не работает.