2011-10-19 19 views
0

我想拉動Games.date_added中的值大於輸入日期的每個表中的所有記錄。試圖拉出所有新記錄。查詢結果是否可以形成三個不同的表格進入一個數組?

我可以在一個查詢中做到這一切嗎?或者,只需向每個表格添加一個date_added字段並分別查詢每個表格就更簡單了。

GAMES
ID
DATE_ADDED
GAME_NAME
RELEASE_DATE
game_category
game_type
game_console

TROPHIES
噸rophies_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

回答

1

如果你做3個單獨的查詢,它會更好,更清晰。每個人都會給你不同數量的行。 glglgl給出的使用2個連接的查詢將導致遊戲表中的行數增加。這是因爲tropies和tropy totals可以包含多個相同遊戲的記錄。當然,如果game_name是一個唯一的列,那麼連接就會OK。

+1

有相同遊戲名稱的獎盃中有多個記錄。 –

+0

在這種情況下留下單獨的查詢。加入數據沒有意義。但是glglgl abiut ID給出的提示也是一個好主意。改變你連接數據的方式。遊戲名稱是一個字符串,它可能因單個空間而不同,並且連接將丟失。 –

1

首先,它肯定會更好的讓你的外鍵字段TROPHIESTROPHY_TOTALSid RESP。 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> 
相關問題