我需要一些帮助,我不知道我试图做的正确术语,所以我无法找到任何我试图实现的例子。
我在这里跳一个人可以指出我如何做这个简单的查询,并且能够自己创建一个。
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};
答案 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)