查询结果可以形成三个不同的表进入一个数组吗?

时间:2011-10-19 14:31:30

标签: php mysql arrays

我试图拉出这些表中的所有记录,这些记录在Games.date_added中的值大于输入日期。试图拉出所有新记录。

我可以在一个查询中完成所有操作吗?或者,只是将date_added字段添加到每个表并分别查询每个表是否更容易?

  

游戏
  ID
  DATE_ADDED
  GAME_NAME
  RELEASE_DATE
  game_category
  game_type
  game_console

     

TROPHIES
  trophies_id
  GAME_NAME
  tr_name   tr_description
  tr_color
  tr_ach_value

     

TROPHY_TOTALS
  trophy_totals_id
  GAME_NAME
  bronze_ttl
  silver_ttl
  gold_ttl
  plat_ttl
  hidden_​​ttl

2 个答案:

答案 0 :(得分:1)

首先,将TROPHIESTROPHY_TOTALS中的外键字段设为id肯定会更好。 game_id而不是game_name

这就是说,我将专注于你当前的表结构。

SELECT <wanted fields>
    FROM GAMES
    LEFT JOIN TROPHIES USING (game_name)
    LEFT JOIN TROPHY_TOTALS USING (game_name)
    WHERE date_added > <given>

答案 1 :(得分:1)

如果你做3个单独的查询,会更好更清楚。每一个都会给你不同的行数。由glglgl给出的使用2个连接的查询将导致来自games表的相乘行。这是因为tropies和tropy总计可以包含具有相同游戏的多个记录。当然,如果game_name是一个唯一的列,那么连接就可以了。