Ссылка на две таблицы в базе данных SQL

0

Я новичок в 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')
);
Теги:

3 ответа

0
Лучший ответ
select u.name, u.city
    from users u
    inner join search_terms st on st.id = u.id
    where st.word = 'drain'

Надеюсь, это поможет.

  • 0
    Спасибо. Всякий раз, когда я пытаюсь это сделать, я ничего не получаю. Я попытался удалить часть, где тоже, и я до сих пор не получаю вывод. Почему это? еще раз спасибо
  • 0
    терминал переходит от наличия этого sqlite> к ...> после того, как я попробую это.
Показать ещё 4 комментария
0

Вы можете использовать JOIN или подзапрос. Здесь основная стратегия:

  1. Получите значения id, соответствующие тому, что вы ищете
  2. Просмотрите любую другую информацию для этих значений 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');
0

Вам нужно присоединиться к таблице 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';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню