Мне нужно получить пользователей из таблицы 'users', которые не совпадают с моим именем пользователя, но также не находятся в заблокированной таблице как 'blockee'.
Используя только таблицу пользователей, я делаю:
SELECT * FROM users WHERE username != <myself> AND interests LIKE <string>;
Однако, поскольку я добавил дополнительную «заблокированную» таблицу, мне нужнодалее отфильтруйте их.
mysql> describe users;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO | | NULL | |
| password | varchar(255) | NO | | NULL | |
| email | varchar(255) | NO | | NULL | |
| city | varchar(60) | NO | | NULL | |
| state | varchar(60) | NO | | NULL | |
| lat | decimal(8,6) | YES | | NULL | |
| lng | decimal(9,6) | YES | | NULL | |
| interests | text | YES | | NULL | |
| hash | varchar(32) | YES | | NULL | |
| active | int(1) | YES | | NULL | |
| avatar | varchar(255) | YES | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)
mysql> describe blocked;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| blocker | varchar(255) | NO | | NULL | |
| blockee | varchar(255) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Я попытался:
SELECT * FROM users JOIN blocked ON users.username = blocked.blocker WHERE username != 'myself' AND blocked.blockee IS NULL;
Псевдопрос будет выглядеть так:
"give me every user that's not equal to my username, but is also not a blockee where I am the blocker"
Итак, если бы у меня были эти значения взаблокированная таблица:
+----+-----------+----------+
| id | blocker | blockee |
+----+-----------+----------+
| 1 | myself | testuser |
+----+-----------+----------+
Она вернет всех, кто является не testuser и имеет те же значения в столбце интересов, что и предложение LIKE.
Я надеюсь, что этоимеет смысл.Я застрял.