espérons vraiment que quelqu'un peut m'aider sur celui-ci! J'ai 6 tables:Requête compliquée - aide NÉCESSAIRE!
Produits
PRODID
Prodequipment
PRODID
equipclassmain
equipclassor
Equipclasses
classid
Equipfunctions
equipid
CLASSID
Équipement
equipid
Workshopequipment
workshopid
equipid
Produits - une liste de certains produits
Équipement - une liste de certains équipements
Prodequipment - liste quel équipement est nécessaire pour faire un produit. Vous pouvez utiliser les équipements listés dans equipclassmain ou les remplacer par des équipements dans equipclassor. Table Products a un à plusieurs rapports avec Prodequipment table, c'est-à-dire que vous utiliserez beaucoup d'outils différents (équipement) pour produire un produit, mais vous pouvez choisir d'utiliser n'importe qui dans la paire equipclassmain/equipclassor. Par exemple, pour encadrer une photo, vous pouvez utiliser un cadre en bois ou un cadre en plastique (une paire) et un couvercle en verre ou en plastique (deuxième paire). Vous pouvez le combiner comme vous le souhaitez, mais les deux paires doivent être utilisées: cadre en bois avec couvercle en verre ou cadre en plastique avec couvercle en verre ou cadre en bois avec couvercle en plastique ou en plastique avec couvercle en plastique.
Equipfunctions et Equipclasses - Comme un équipement peut être utilisé de différentes manières, il n'est pas directement lié à la table Prodequipment. J'ai créé des Equipclasses de table où toutes les utilisations uniques de tous les équipements possibles sont répertoriées et des Equipfunctions de table où j'énumère ces utilisations uniques pour chaque équipement.
Workshopequipment - répertorie les ateliers et les équipements qu'ils utilisent. Maintenant j'ai besoin d'une liste de produits qui peuvent être fabriqués par deux ateliers différents (disons workshopid = 1 et workshopid = 4), c'est-à-dire que ces deux ateliers ont tout l'équipement nécessaire pour produire ces produits. Gardez à l'esprit que ces ateliers n'ont pas besoin d'utiliser le même équipement pour le faire comme je l'ai décrit ci-dessus.
J'essaie avec cette requête:
SELECT prodid FROM Products JOIN (
SELECT workshopid, prodlist, equipclassmain, equipclassor,
if(LOCATE(equipclassmain, prodlist) >0
AND LOCATE(equipclassor, prodlist) >0, 1, 0) AS pairstatus FROM Prodequipment JOIN
(
SELECT classid FROM Equipclasses JOIN (
SELECT classid FROM Equipfunctions JOIN (
SELECT workshopid, GROUP_CONCAT(equipid) AS prodlist FROM Workshopequipment
GROUP BY workshopid
)
equipfunclist GROUP BY equipid
) equipclasslist GROUP BY classid
) WorkshopequipmentList HAVING pairstatus = 1 AND workshopid in (1, 4)
) prodbyworkshops ON classid = equipclassmain OR classid = equipclassor
Mais j'obtenir une « colonne classid dans la liste des champs est ambigu ». Une idée de ce qui ne va pas ici?
MERCI!