0
votes

SQL Fusionner deux requêtes Résultat

Utiliser XAMPP MYSQL
Q1:

 SELECT truckid,count(deliverid) 
   FROM `delivery2` 
  WHERE YEAR(ddate)=2019 and MONTH(ddate)=1 
  GROUP BY truckid


1 commentaires

Si vous avez besoin d'eux côte à côte, vous avez besoin d'un rejoindre ; Un jointure extérieure pour être précis. Malheureusement, MySQL ne met pas en œuvre ceux-ci. Vous pouvez fusionner à à gauche rejoindre , cependant.


3 Réponses :


1
votes

Vous pouvez utiliser Union tout & faire agrégation conditionnelle: xxx


2 commentaires

Cela fonctionne aussi. Intéressant Ce n'est pas la première fois que vous le résolvez à l'aide d'une approche totalement différente, comparée à la mienne.


hmm pourquoi les tables dans le SELECT comme un col? TruckID, livraison, 'Livraison2' <-? Obtenez une erreur # 1064 - Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à votre version du serveur Mariadb pour la syntaxe droite à utiliser à proximité de 'Table =' Livraison ') comme livraison_count, somme (Table =' Livraison2 ') comme de "à la ligne 2 et je ne suis pas vraiment sûr de ce que tu as fait là-bas : P



0
votes

Vous pouvez simuler un joindre extérieur par Union -ing A rejoindre gauche avec un Joindre droit , Comme dans: xxx


0 commentaires

0
votes

J'écrirais cela comme suit: xxx

Je pense que c'est l'approche la plus efficace.

Premièrement, les gammes de date permettent l'utilisation d'index.

Deuxièmement, le groupe par sur les tables individuelles est sur une taille de taille plus petite. Groupe par Balance pire que linéairement, si plus petit est meilleur.

Le syndicat est également sur des données plus petites.

et En tant que commodité, aucune logique conditionnelle n'est directement nécessaire.


0 commentaires