sql >> Databáze >  >> RDS >> Mysql

MYSQL/PHP najde nejběžnější položku spojenou s danou položkou

Začněte dotazem, který získá všechny kolekce obsahující vybranou položku:

SELECT collectionId
FROM wishLists
WHERE itemId = 876

Z toho chcete získat všechna ostatní itemId v těchto kolekcích.

SELECT itemId
FROM wishLists
WHERE collectionId IN (above query)
AND itemId != 876

Toto lze přepsat jako spojení:

SELECT a.itemId
FROM wishLists AS a
JOIN wishLists AS b ON a.collectionId = b.collectionId
WHERE a.itemId != 876 AND b.itemId = 876

Nyní můžete počítat jeho opakování, abyste našli ty nejběžnější:

SELECT a.itemId
FROM wishLists AS a
JOIN wishLists AS b ON a.collectionId = b.collectionId
WHERE a.itemId != 876 AND b.itemId = 876
GROUP BY a.itemId
ORDER BY COUNT(*) DESC

Přidejte LIMIT n klauzule na konci pro zobrazení horních n položek.




  1. Žádné výsledky SQL Query po úspěšném importu CSV do mysql pomocí LOAD DATA LOCAL INFILE

  2. exportovat obsah tabulky databáze mysql do souboru PDF pomocí php

  3. Jak náhodně seřadit výsledky dotazu a vybrat náhodné řádky. (MySQL)

  4. instalace drahokamu:Nepodařilo se vytvořit nativní rozšíření drahokamu (nelze najít hlavičkové soubory)