我是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`)
);
答案 0 :(得分:0)
您需要将search_terms表与users表连接。我假设search_terms.id引用了users.id。 将它们链接起来,将为我们提供每个用户的搜索条件的结果。 从那里你可以添加更多的过滤器(WHERE条件)以获得更具体的结果。
因此,要获取每个用户的名称和主页城市,您需要从users表中选择名称和城市,然后加入search_terms表和链接ID列,以了解每个用户在搜索中使用的单词。
查询应该是这样的:
SELECT name, city
FROM users
LEFT JOIN search_terms ON search_terms.id = users.id
WHERE
search_terms.word LIKE 'drain';
答案 1 :(得分:0)
select u.name, u.city
from users u
inner join search_terms st on st.id = u.id
where st.word = 'drain'
我希望这会有所帮助。
答案 2 :(得分:0)
您可以使用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');