【问题标题】:mysql repetitive query with many joins具有许多连接的mysql重复查询
【发布时间】:2011-04-28 11:34:36
【问题描述】:

我有以下 4 个表:

Participant      {id_participant, etc.}

Player           {id_participant, name, phone, etc.}

Team             {id_participant, name, phone, etc..}

Couple           {id_participant, id_player1, id_player2}

Games            {id_game, localization, etc.}

GamesParticipant { id_game, id_participant, type (p,t,c) }

在我的网站上,我需要进行许多涉及参与者的查询,而通常的方式需要每个查询进行多次连接。我想到的第一个解决方案是创建一个包含 Player、Team、Coup 的视图并对该视图进行查询,但阅读 MySQL view performance 的帖子我无法使用 union。

最好的方法是什么?是否可以使用存储过程?

谢谢

【问题讨论】:

  • 接受您最近的问题!
  • @aprencai。如果它解决了(大部分)您的问题,那么在 stackoverflow 上接受答案(单击“V”)是一种很好的形式。这奖励回答者解决您的问题并提高您在社区中的地位。 如果您的问题没有好的答案,请不要接受,因为这会使寻找答案的人感到困惑
  • @aprencai:你的Team 表怎么没有id_teamPlayer 表也是如此。
  • @ypercube: team_id = id_participant
  • @aprencai:表之间的关系是什么?您是否分配了外键引用?

标签: mysql


【解决方案1】:
   SELECT *
     FROM Participant
LEFT JOIN Player
       ON Player.id_participant = Participant.id_participant
LEFT JOIN Team
       ON Team.id_participant = Participant.id_participant
LEFT JOIN Couple
       ON Couple.id_participant = Participant.id_participant
LEFT JOIN GamesParticipant
       ON GamesParticipant.id_participant = Participant.id_participant
LEFT JOIN Games
       ON Games.id_game= GamesParticipant.id_game

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多