Mysql选择其他表

时间:2015-05-28 19:55:31

标签: mysql sql database

我需要一些帮助,我不知道我试图做的正确术语,所以我无法找到任何我试图实现的例子。

我在这里跳一个人可以指出我如何做这个简单的查询,并且能够自己创建一个。

SELECT * FROM
 `product_views` pv,`product_sales` ps
WHERE
 pv.`SessionId` = ps.`SessionId` {result of} ps.`ProductId` = 1

我试图找出的语法基本上是如何在where子句中获取查询结果。

谢谢!

编辑。 我意识到,我不知道我想要实现的正确术语的事实令人困惑,因此我将展示如何在这个时间点得到相同的结果但是在两个查询中

SELECT ps.`SessionId` FROM `product_sales` ps WHERE ps.`ProductId` = 1;

然后用那个查询的结果我会说sessionId 20(为了保持简单) 然后我将不得不重新查询

SELECT * FROM `product_views` pv WHERE pv.SessionId = {ValueOfLastQuery};

2 个答案:

答案 0 :(得分:1)

加入可以帮助您实现您正在寻找的东西。 Here's一个很棒的介绍。

基本上,您希望执行以下操作:

SELECT * FROM
product_views
LEFT JOIN product_sales
ON product_views.SessionId = product_sales.SessionId
WHERE product_sales.ProductId = '1'

编辑:

我认为你也可以使用子查询,它看起来像:

SELECT * FROM
product_views
WHERE SessionId = (SELECT SessionId from product_sales WHERE ProductId = '1')

答案 1 :(得分:1)

子查询怎么样:

 SELECT * FROM `product_views` pv 
 WHERE pv.SessionId IN 
    (SELECT ps.`SessionId` FROM `product_sales` ps WHERE ps.`ProductId` = 1)