我需要一些帮助,我不知道我想要做什么的正确术语,所以我无法找到我想要实现的目标的任何例子。
我希望有人能告诉我如何做这个简单的查询,并且我能够自己创建一个查询。
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};
最佳答案
加入将帮助您实现您的目标。 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')
关于Mysql Select with select result in another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515953/