Heim > Backend-Entwicklung > PHP-Tutorial > Gibt es nach dem Teilen der Tabelle eine gute Möglichkeit, die Daten nach Zeit zu sortieren?

Gibt es nach dem Teilen der Tabelle eine gute Möglichkeit, die Daten nach Zeit zu sortieren?

WBOY
Freigeben: 2016-08-10 09:07:19
Original
1626 Leute haben es durchsucht

Es gibt drei Tabellen:

Benutzertabelle: user------------------user_id


Artikeltabelle: Artikel----------------article_id,user_id;


Kommentartabelle: Article_comment----comment_id,article_id


Die Benutzertabelle hat eine Eins-zu-Viele-zu-Viele-Beziehung mit der Tabelle "article_comment".

Artikel_Kommentar ist nun nach Artikel-ID%6 in sechs Tabellen unterteilt: Artikel_Kommentar_0/1/2/3/4/5
Jetzt ist es notwendig, die Kommentare aller Artikel eines bestimmten Benutzers nach Zeit anzuzeigen des Kommentars, wie schreibe ich SQL?

Antwortinhalt:

Es gibt drei Tabellen:

Benutzertabelle: user------------------user_id


Artikeltabelle: Artikel----------------article_id,user_id;


Kommentartabelle: Article_comment----comment_id,article_id


Die Benutzertabelle hat eine Eins-zu-Viele-zu-Viele-Beziehung mit der Tabelle "article_comment".

Artikel_Kommentar ist jetzt nach Artikel-ID%6 in sechs Tabellen unterteilt: Artikelkommentar_0/1/2/3/4/5
Jetzt müssen wir die Kommentare aller Artikel eines bestimmten Benutzers entsprechend der Zeit anzeigen der Kommentar, wie schreibe ich SQL?

<code>SELECT * FROM((SELECT * FROM article_comment_0 INNER JOIN article ON article_comment_0.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_1 INNER JOIN article ON article_comment_1.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_2 INNER JOIN article ON article_comment_2.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_3 INNER JOIN article ON article_comment_3.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_4 INNER JOIN article ON article_comment_4.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_5 INNER JOIN article ON article_comment_5.article_id=article.article_id WHERE article.user_id='userid')) res
ORDER BY res.comment_createtime DESC
</code>
Nach dem Login kopieren

Wenn Ihre Tabelle so gestaltet ist, müssen Sie die Artikelabfrage jedes Mal verbinden. Daher wird empfohlen, ein redundantes Feld „user_id“ in der gemeinsamen Tabelle hinzuzufügen, damit die Abfrage keinen weiteren Schritt erfordert

Wenn Sie die Tabelle nicht aufteilen können, wird die Aufteilung der Tabelle große Probleme mit sich bringen. Ich weiß nicht viel über MySQL, aber ich habe danach gesucht :

http://dev.mysql.com/doc/refm...

Sie sollten die Tabellen entsprechend Ihren Abfragebedingungen aufteilen, sonst gibt es keinen guten Weg

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage