MYSQL / PHP findet das am häufigsten verwendete Element, das einem bestimmten Element zugeordnet ist

Ich habe Tausende von benutzerdefinierten Wunschlisten mit Artikeln

the Tabelle ist so etwas wie

collectionId |  itemdId  | user_id
-----------------------------------

    123      |    2345  |    1
    123      |    3465  |    1
    123      |    876   |    1  // <---
    123      |    567   |    1           
    123      |    980   |    1  // <---

    777      |    980   |    2  // <---
    777      |    332   |    2
    777      |    3465  |    2
    777      |    876   |    2  // <---
    777      |    678   |    2
    777      |    567   |    2
    ...           ...       ...
etc..

siehe Artikel 876 und 980, sind in beiden Kollektionen enthalten (777 und 123), so dass sie ein beliebtes Paar / Paar sind

Angenommen, ich besuche die Seite von Artikel 876. Ich möchte meinen Benutzern anzeigen, dass ein sehr häufiger Artikel damit verbunden ist / gewünscht wird. Es handelt sich um Artikel 980. (Dies basiert natürlich auf user'taste.)

Denken Sie für einen Moment darüber nach, was Amazon tut, wenn Sie ein weißes iPhone sehen. Ich möchte Ihnen ein rosa iPhone-Cover vorschlagen, weil viele andere Benutzer dies zusammen mit dem weißen iPhone vorgeschlagen / favorisiert haben.

in PHP würde ich wohl etwas loopiges machen wie im Pseudocode

for total number of collection:

select all item from collection 1

  select all item from collection 2
  do array_interesct (c1,c2)
  store the matching items
  repeat...

  select all item from collection 2
  do array_interesct (c1,c3)
  store the matching items
  repeat...

...then elect all item from collection 2 and repeat all the iterations..

aber ich frage mich, ob dies nur mit MYSQL erreicht werden kann

Antworten auf die Frage(2)

Ihre Antwort auf die Frage