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
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour
IN
:Essayer
IN
(sans"")