Вывести пользователей Mysql

92
11 марта 2022, 03:00

Как вывести всех пользователей, которых я не лайнкул в таблице likes и соответствую условию

накидал так, но ничего не выводит

SELECT * FROM `users`
LEFT join `user_attributes` on user_attributes.user_id = users.id
left join likes on likes.like_user != users.id and likes.user_id = 1
where user_attributes.gender = 2 and user_attributes.city = "Витебск" and user_attributes.age BETWEEN 18 and 25 LIMIT 4
Answer 1
left join likes on likes.like_user != users.id and likes.user_id = 1

Очень странная строчка. Без приложенной схемы таблиц сложно понять, то мне кажется дело еще в том, что у вас есть likes.like_user и likes.user_id. И если вы связываете по users.id, то чисто по логике надо вязать с likes.user_id

SELECT * FROM `users`
LEFT join `user_attributes` on user_attributes.user_id = users.id
left join likes on likes.user_id = users.id
where user_attributes.gender = 2 and user_attributes.city = "Витебск" and likes.user_id is null and user_attributes.age BETWEEN 18 and 25 LIMIT 4

upd:

Ну тогда так.

SELECT * FROM `users`
LEFT join `user_attributes` on user_attributes.user_id = users.id
left join likes on likes.like_user = users.id 
where user_attributes.gender = 2 and user_attributes.city = "Витебск" and likes.like_user is null and likes.user_id = 1 and user_attributes.age BETWEEN 18 and 25 LIMIT 4
Answer 2

вот так еще накидал

SELECT * FROM `users`
LEFT join `user_attributes` on user_attributes.user_id = users.id
where 
user_attributes.gender = 2
and user_attributes.city = "Витебск"
and user_attributes.age BETWEEN 18 and 35
        and not exists (select * from likes where likes.like_user = users.id)
LIMIT 4
READ ALSO
Как преобразовать в Map

Как преобразовать в Map

Есть некий класс UserКак я могу его преобразовать в справочник, по принципу[номер телефона -> пользователь]

150
Android. Java. Условие в Random.nextInt();

Android. Java. Условие в Random.nextInt();

Подскажите, как можно заменить мою проверку, на такую, чтобы она выполнялась сразу при рандоме в первой строке, если это возможно:

144
Нужно вызвать ошибку JAVA

Нужно вызвать ошибку JAVA

Напишите строку вызова этой функции с такой строкой-паролем, чтобы возникло какое-нибудь исключение

118
Какой контейнер использовать?

Какой контейнер использовать?

Какой контейнерный класс можно использовать как ранилище строк таблицы, в которую часто вставляют в начало и в середину? Варианты: ArrayList LinkedList...

207