Я новичок в SQL, как я могу ответить на следующий вопрос? Использую ли я соединение? Огромное спасибо.
Каковы названия и домашние города для людей, которые искали слово "утечка"?
.schema ниже:
CREATE TABLE 'users' (
'id' INTEGER,
'name' VARCHAR,
'email' VARCHAR,
'city' VARCHAR,
'state' VARCHAR,
'last_visit' DATE,
'page_views' INTEGER,
PRIMARY KEY ('id')
);
CREATE TABLE 'search_terms' (
'id' INTEGER,
'word' VARCHAR,
PRIMARY KEY ('id')
);
select u.name, u.city
from users u
inner join search_terms st on st.id = u.id
where st.word = 'drain'
Надеюсь, это поможет.
Вы можете использовать JOIN
или подзапрос. Здесь основная стратегия:
id
, соответствующие тому, что вы ищетеid
,
SELECT name, city
FROM users usr
INNER JOIN search_terms stm ON usr.id = stm.id
WHERE stm.word = 'drain';
или же...
SELECT name, city
FROM users
WHERE id IN (SELECT id FROM search_terms WHERE word = 'drain');
Вам нужно присоединиться к таблице search_terms с таблицей пользователей. Я предполагаю, что search_terms.id ссылается на users.id. Связывание их обоих даст нам результаты поисковых запросов для каждого пользователя. оттуда вы можете добавить дополнительные фильтры (условия WHERE) для получения более конкретных результатов.
Таким образом, чтобы получить имена и домашние города для каждого пользователя, вам нужно выбрать имя и город из таблицы пользователей, затем присоединиться к столбцам таблицы search_terms и столбцам идентификаторов ссылок, чтобы узнать, какие слова, которые каждый пользователь использовал в поиске.
Запрос должен выглядеть примерно так:
SELECT name, city
FROM users
LEFT JOIN search_terms ON search_terms.id = users.id
WHERE
search_terms.word LIKE 'drain';