Nat*_*n H 6 mysql sql sql-server
前一段时间我参与了一个MS-SQL项目,我记得一个"IS IN"的东西.我在MySQL项目上尝试过它并没有用.
有同等的吗?解决方法?
这是我试图运行的完整查询:
SELECT *
FROM product_product, product_viewhistory, product_xref
WHERE
(
(product_viewhistory.productId = product_xref.product_id_1 AND product_xref.product_id_2 = product_product.id)
OR
(product_viewhistory.productId = product_xref.product_id_2 AND product_xref.product_id_1 = product_product.id)
)
AND product_product.id IS IN
(SELECT DISTINCT pvh.productId
FROM product_viewhistory AS pvh
WHERE pvh.cookieId = :cookieId
ORDER BY pvh.viewTime DESC
LIMIT 10)
AND product_viewhistory.cookieId = :cookieId
AND product_product.outofstock='N'
ORDER BY product_xref.hits DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
它很大......但我感兴趣的部分是:
AND product_product.id IS IN
(SELECT DISTINCT pvh.productId
FROM product_viewhistory AS pvh
WHERE pvh.cookieId = :cookieId
ORDER BY pvh.viewTime DESC
LIMIT 10)
Run Code Online (Sandbox Code Playgroud)
这基本上说我希望产品在该子查询的"前10名"中.
你如何用MySQL实现这一目标(同时努力提高效率)?
dav*_*nal 15
您正在寻找IN:
AND product_product.id IN
(SELECT DISTINCT pvh.productId
FROM product_viewhistory AS pvh
WHERE pvh.cookieId = :cookieId
ORDER BY pvh.viewTime DESC
LIMIT 10)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21399 次 |
| 最近记录: |