je la requête SQL suivante:UNION - MySQL vs SQLight
SELECT *
FROM (SELECT sku,
price
FROM pricelist_98
UNION
SELECT sku,
price
FROM pricelist_10) AS result
WHERE sku = '5101863'
GROUP BY sku
Je veux obtenir le prix de pricelist_98 lorsque les produits spécifiés existe là-bas, sinon le prix de pricelist_10. Cela devrait être dynamiquement extensible avec des tables de prix plus nombreuses et différentes. La première liste de prix contenant le produit doit être affichée.
Lorsque j'interroge mon serveur MySQL, j'obtiens le résultat volitionnel. J'ai également une application iPad avec la même structure de base de données dans une base de données SQLight. Ici, je reçois la ligne de pricelist_10, bien que le produit existe dans pricelist_98.
Je suis curieux de connaître le contexte technique pour lequel la requête est traitée différemment. Aussi, je suis à la recherche d'une solution à une seule requête qui fonctionne aussi dans ma base de données SQLight.
EDIT Notez également que WHERE est facultatif. J'ai besoin du SELECT pour retourner chaque produit dans au moins une table de liste de prix que je demande.
Qui a créé différents tableaux de tarifs? Avez-vous essayé SQLDark? – Kermit
La raison pour laquelle cela a été fait est que différents clients sont assignés à des listes de prix différentes et que certains tarifs ont une liste de prix de base pour les produits qui n'ont pas de prix spécial pour ce client. Dans cet exemple, pricelist_98 contient seulement environ 10 produits et a pricelist_10 comme liste de prix de base. Cette structure est prédéfinie et je ne peux rien y changer. Et non, je n'ai pas essayé SQLDark. Je suis coincé avec SQLight. – m0tv
1. SKU est-il unique dans une seule table? 2. Pourquoi utilisez-vous GROUP BY? –