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

时间:2011-04-04 08:25:17

标签: mysql

我有两张桌子(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

是否可以从productsvisited选择与user_ip共同的所有purchased?在上面的示例中,我需要选择id3id4

提前谢谢!

2 个答案:

答案 0 :(得分:6)

试试这个:

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

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

答案 1 :(得分:1)

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

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

您可以将选择更改为仅需要btw(如果您只需要ID)。