9
votes

MySQL Inner Join avec limite à gauche

J'ai cette requête de base de données xxx

la requête limite les lignes totales du résultat à 5. Je veux limiter la table de gauche métadata à 5 sans limitation L'ensemble du résultat.

Comment devrais-je écrire la requête?


4 commentaires

Que voulez-vous dire par la limitation de la table de gauche à 5?


@experimentX, 1 rangée dans métadonnées peut être liée à n rangée dans contenu . Je veux structurer la requête afin qu'elle renvoie 5n lignes, pas 5 rangées


@Shakti Singh c'est ce que je veux, je pensais qu'il pourrait y avoir une voie plus directe


Pouvez-vous ajouter votre structure de table


3 Réponses :


0
votes

Eh bien, je pense que vous voulez dire rejoindre Essayez d'utiliser de rejoindre au lieu de joindre intérieur xxx


2 commentaires

Essayé ça! Pas ce que je veux. Une jointe à gauche inclura tous les enregistrements dans gauche table qui ne disposent pas de contreparties dans la table de droite. Une join interne comprendra uniquement les enregistrements communs aux deux


Bien que je ne recommande pas le mien



16
votes

Si vous pensez à ce que vous essayez de faire, vous ne faites pas vraiment de sélectionner contre métadonnées code>.

Vous devez submerger le premier. P>

Essayez: P>

SELECT *
FROM ((select * from metadata limit 5) im)
INNER JOIN `content` ic ON `im`.`rev_id`  = `ic`.`rev_id`
WHERE `im`.`id` = '00039'
AND `current_revision` = 1
ORDER BY `timestamp` DESC


2 commentaires

Cela obtiendra les 5 premières lignes de «métadonnées», puis effectuera d'autres interrogations sur cet ensemble de données limitée.


@Ash - Oui, c'est ce qu'il a demandé. "Je veux limiter la métadonnée de la table de gauche à 5"



0
votes

Voici une autre approche possible: xxx

Ce n'est pas testé. S'il vous plaît laissez-moi savoir si vous courez dans la question de la mise en œuvre - et je peux élaborer.


0 commentaires