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?
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>
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