MySQL查询多对一连接
我正在使用一个查询,它使用引用一个表的多个列中的ID来获取有关该ID的信息。以下是代码:MySQL查询多对一连接,mysql,Mysql,我正在使用一个查询,它使用引用一个表的多个列中的ID来获取有关该ID的信息。以下是代码: SELECT `Events`.EventID, `Events`.AssociationID, `Events`.Association2ID, `Events`.Association3ID, `Events`.Association4ID, `Events`.Association5ID, `Events`.DateF
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()
我想做的是捕获每个ID的详细信息。我不知道如何做到这一点。例如:
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.
如果将连接更改为
这能改善情况吗
<>你也应该考虑把事情重组进去。
与为潜在的AssociationID保留5列不同,建模这种多对多关系id的正常方法是使用带有两列AssociationID和EventId的连接表,您似乎正在选择这些列。你想成为什么样的人?啊,我知道你可能需要使用或不使用和-和重新设计你的数据库,把它变成第一个正常的形式!每当我发现自己试图在字段名的末尾添加一个数字时,这就意味着我的数据库模式是错误的——如果您有超过1个(包括FK引用),请将其放入一个新表中!
LEFT JOIN Associations ON
Associations.AssociationID IN (`Events`.AssociationID,
`Events`.Association2ID,
`Events`.Association3ID,
`Events`.Association4ID,
`Events`.Association5ID)