J'ai 2 tables comme celles-ci: -
|----------------------------| |OfferNum|colour|availability| |a1 |blue |yes | |a1 |red |no | |a2 |green |yes | |----------------------------|
3 Réponses :
Déplacez la clause limite à l'intérieur d'une sous-requête et rejoignez-la:
SELECT offers2.OfferNum, items.colour, items.availability FROM (SELECT * FROM offers ORDER BY id LIMIT 0, 3) AS offers2 JOIN items ON items.OfferNum = offers2.OfferNum ORDER BY ...
Cela donne l'erreur: - # 1064 - Vous avez une erreur dans votre syntaxe SQL. Vérifiez le manuel qui correspond à votre version MySQL Server pour la syntaxe de droite à utiliser à proximité 'Select * à partir de la commande OFFERTS par ID Limite 0, 3) Comme Offre2 Rejoindre i
Aucune erreur de syntaxe ici: dbfiddle.uk/...
Sur ma boîte de production, j'utilise une ancienne version MySQL (4.0.23-NT). Cela peut-il être un problème?
Y a-t-il un moyen de vérifier si la version 4 de MySQL peut faire une requête d'alias de table? J'apprends seulement - pas un expert. Merci!
Cela n'utilise aucune syntaxe de fantaisie. Et MySQL 4 est Sooooo Old qu'ils ne maintiennent même pas sa documentation, désolé.
Si je comprends correctement, vous souhaitez afficher 3 offres de la table des offres et affiche toutes les valeurs équivalentes de la deuxième table à côté, vous pourriez envisager de sélectionner les données que vous souhaitez avoir en tant que base, comme:
SELECT customOffers.OfferNum, items.colour, items.availability FROM (SELECT OfferNum FROM offers ORDER BY id ASC LIMIT 0 , 3) as customOffers JOIN items ON items.OfferNum = offers.OfferNum
Je dois récupérer des rangées de tabales jointes pour les traiter via php. Le 2e script ci-dessus donne cette erreur: - Vous avez une erreur dans votre syntaxe SQL. Vérifiez le manuel qui correspond à votre version de serveur MySQL pour la syntaxe droite à utiliser à proximité 'Sélectionnez Sélectionnez Offernum à partir de la commande d'ID ASC Limite 0
J'ai déjà exécuté les mêmes requêtes avec différents noms de table et noms de colonnes avant d'écrire cette réponse et il n'a pas déclenché une erreur, comme il semble que votre serveur reconnaît la virgule de manière différente, je suppose que votre erreur manque la partie. Après la virgule, qui est 3, et je pense d'abord, vous devez vérifier quel type de séparateur est défini dans vos paramètres régionaux, la deuxième pensée est que vous pourriez avoir une syntaxe spécifique pour la sélection de la table et de la colonne si vous utilisez un phpmyadmin code> par exemple, puis vous avez besoin
Sélectionnez `Offernum` à partir de` Offres` Commande par `Id'id` ASC Limit 0, 3 Code>
Une instruction Select normale fonctionne, y compris la limite de 0,3 et sans l'accent grave (`). Ce problème est le plus probablement lié à la version. Je vais installer MySQL 5 A et voir. Va mettre à jour plus tard.
Pourriez-vous s'il vous plaît vérifier d'abord vos paramètres régionaux? Quel symbole est spécifié comme séparateur? Pour expliquer comment vérifier, j'ai besoin de savoir quel système opérationnel exécutez-vous le serveur.
PHPMYADMIN 2.6.1 + MySQL 4.0.23-NT sous Windows XP. Vieux, je sais mais ils ont fait le travail jusqu'à présent. Ce n'est que cette sous-requête qui ne fonctionne pas!
Les sous-requêtes ne sont pas prises en charge dans des versions inférieures à mysql 4.1 Stackoverflow.com/Questtions/5194036/...
Wow, c'est bizarre, je ne m'attendais jamais à ce que le résultat ... Mais si vous êtes capable de vérifier une chose pour moi, je suis curieux panneau de commande -> horloge, langue et région -> Modifier la date, l'heure ou le numéro format code> et là dans
onglet code> vous devez avoir
regroupement de chiffres code> symbole et
symbole décimal code>, pouvez-vous me dire quels symboles sont assignés et à quelle propriété?
Je peux voir cela dans les options régionales et linguistiques Numéro: 123 456 789,00 Monnaie: 123,456 789,00 $ Temps: 9:30:02
Merci d'avoir fourni des informations supplémentaires, ma suspicion est partie.
Le problème était avec MySQL 4.0. P>
Les sous-requêtes ne sont pas prises en charge dans des versions inférieures à MySQL 4.1 Query SQL SQL ne fonctionne pas sur MySQL 4 p>
Plus de détails ici: http://dev.mysql.com /doc/refman/4.1/fr/subqueries.html P>
Pour une solution rapide, j'ai installé MySQL 4.1 et les deux réponses d'Irakli Gigiberia et de Salman une œuvre. p>
Merci beaucoup pour votre aide. P>
La première page contiendrait donc 2 + 1 + 5 rangées?
Postez votre schéma de table
@Quest Select * à partir de
Offres Code>, couleurs où offres.offernum = colours.offernum et colours.Offernum In (Sélectionnez Offernum à partir de l'ordre de Offre par Offernum ASC Limite 0,3) - Cette fois et laissez-moi savoir si ça marche ou non
Salman A: Oui, il contiendrait un total de 8 rangées
RIPA SAHA: Cela donne cette erreur: - Vérifiez le manuel qui correspond à votre version de Server MySQL pour la syntaxe de droite à utiliser à proximité 'Sélectionnez Offernum à partir de Offres Order Par Offernum ASC Limit 0,3) LI