J'ai une requête que j'utilise qui utilise l'ID de plusieurs colonnes qui se réfèrent à une table pour obtenir les informations sur cet ID. Voici le code:MySQL Query plusieurs-à-un rejoindre
SELECT `Events`.EventID,
`Events`.AssociationID,
`Events`.Association2ID,
`Events`.Association3ID,
`Events`.Association4ID,
`Events`.Association5ID,
`Events`.DateFrom,
`Events`.DateTo,
`Events`.EventName,
`Events`.VenueID,
`Events`.TestnTune,
`Events`.ShownShine,
`Events`.SpecialInfo,
`Events`.OtherInfo,
`Events`.Rating,
`Events`.EventOverlay,
`Events`.HavePictures,
`Events`.IncludeInSchedule,
`Events`.EventURL,
Associations.Active,
Associations.Acronym,
Associations.OrgName,
Associations.WebURL,
Associations.LogoURL,
Venues.LocationName,
Venues.Location,
Venues.longetude,
Venues.latitude,
Venues.Directions,
Venues.SitePros,
Venues.SiteCons,
Venues.BasicInfo,
Venues.SiteRating,
Venues.HostedEvents,
Venues.CurrentWeather
FROM `Events`
LEFT JOIN Associations ON `Events`.AssociationID = Associations.AssociationID
AND `Events`.Association2ID = Associations.AssociationID
AND `Events`.Association3ID = Associations.AssociationID
AND `Events`.Association4ID = Associations.AssociationID
AND `Events`.Association5ID = Associations.AssociationID
LEFT JOIN Venues ON `Events`.VenueID = Venues.VenueID
WHERE `Events`.DateFrom >= NOW()
Ce que je veux faire est de capturer les informations détaillées sur chaque ID. Je ne peux pas comprendre comment cela est fait. Par exemple:
For Association2ID:
Associations.Active,
Associations.Acronym,
Associations.OrgName,
Associations.WebURL,
Associations.LogoURL
For Association3ID
Associations.Active,
Associations.Acronym,
Associations.OrgName,
Associations.WebURL,
Associations.LogoURL,
etc.
Eh bien, vous semble être la sélection de ces colonnes. Qu'est-ce qui ne se passe pas que vous voulez être? Ah je vois que vous devez probablement utiliser 'ou' pas' and' - et une refonte de votre base de données pour le mettre en forme normale! –
Chaque fois que je me trouve tenté d'ajouter un nombre à la fin d'un nom de champ, cela signifie que mon schéma de base de données est faux - si vous avez plus de 1 de tout (y compris les références FK), placez-le dans une nouvelle table! – Basic