我试图拉出这些表中的所有记录,这些记录在Games.date_added中的值大于输入日期。试图拉出所有新记录。
我可以在一个查询中完成所有操作吗?或者,只是将date_added字段添加到每个表并分别查询每个表是否更容易?
游戏
ID
DATE_ADDED
GAME_NAME
RELEASE_DATE
game_category
game_type
game_consoleTROPHIES
trophies_id
GAME_NAME
tr_name tr_description
tr_color
tr_ach_valueTROPHY_TOTALS
trophy_totals_id
GAME_NAME
bronze_ttl
silver_ttl
gold_ttl
plat_ttl
hidden_ttl
答案 0 :(得分:1)
首先,将TROPHIES
和TROPHY_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是一个唯一的列,那么连接就可以了。