从一个表中选择与另一个表共有的值。

6
我有两个表(visitedpurchased)。
visited -> id,product,user_ip
purchased -> id,product,user_ip

最终在“user_ip”列中具有相同值。例如:
visited ->
1,product1,192.168.1.1
2,product2,192.168.1.1
3,product3,192.168.12.12
4,product4,192.168.12.12

purchased ->
1,product3,192.168.12.12

是否可以从“visited”中选择所有具有与“purchased”中的“user_ip”相同的“products”? 在上面的例子中,我需要选择“id3”和“id4”。

是的,这是一个正式正确的回答你的问题...(直到你回答Naveed的问题。) - Albireo
抱歉,我已经尝试了Vadiklk和Lukas Eder两个选项,它们都提供了相同的良好结果,但我仍然更喜欢Vadiklk选项。非常感谢。 - Telmo
2个回答

10

试一下这个:

SELECT *
FROM visited
WHERE user_ip IN (SELECT user_ip FROM purchased)

如果你没有在user_ip列上设置正确的索引,这可能会很慢...


2

请试一下,如果您需要我编辑,请发表评论。

SELECT *
FROM visited
INNER JOIN purchased
ON visited.user_ip=purchased.user_ip
ORDER BY visited.id

你可以将选择器更改为你所需要的内容(如果你只需要id)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接