MySQL “EST EN” équivalent?

Il y a un moment, j'ai travaillé sur un MS-SQL projet et je me souviens d'un "EST" de la chose. Je l'ai essayé sur un serveur MySQL d'un projet et il ne fonctionne pas.

Est-il un équivalent? Solution de contournement?

Voici la requête complète, je suis en train de lancer:

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

Il est assez grand ... mais la partie que je suis intéressé par:

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)

Qui dit en gros je veux que les produits à être dans le "top 10" de la sous-requête.

Comment voulez-vous atteindre qu'avec MySQL (tout en essayant d'être efficace)?

  • N'est-il pas le même que "dans" dans MySQL?
  • Est ce que vous cherchez, mais cela devrait vraiment être mis en œuvre à l'aide d'une JOINTURE au lieu d'une sous-requête.
  • Veuillez aviser sur "REJOINDRE". Parce que de toute façon mysql ne permet pas de "LIMITE" à l'intérieur "DANS". Donc je pourrais avoir à faire ADHÉRER?
  • je pense que j'ai tout compris, merci
InformationsquelleAutor Nathan H | 2010-04-16