2013-04-16 20 views
0

選擇我有3代表音頻,視頻,圖像MySQL的從3個表,以便通過日期

他們都dateadded和uid

我想選擇所有(選擇*)從這些表其中uid = 1並通過dateadded命令所有結果,非常困惑查詢會是什麼樣子?

+0

做表有相同的字段? –

回答

0

如果塔表保存您可以使用union相同的信息,例如:

select name, date_added 
from(
    select video_name as name,date_added, uid 
    from videos 
    union all 
    select audio_name as name,date_added, uid 
    from audios 
    union all 
    select image_name as name,date_added, uid 
    from images 
) u 
where uid = 1 
order by date_added 
+0

我可以使用select *嗎? –

+0

我想要做這樣的事情: SELECT * 從( SELECT * FROM files_video UNION ALL SELECT * FROM files_audio UNION ALL SELECT * FROM files_image )U其中由ADDDATE的uid = $ UID秩序; 但一些表有不同的名稱cols –

+0

nvm我得到它的工作,tnx –

0

如果3表有1個相同的字段像groupID或類似的東西,你可以使用左連接或內連接,具體取決於你想要的輸出。

使用左連接:

select * from videos v left join audios a on v.groupID = a.groupID 
left join images i on v.groupID = i.groupID 

注: 只是換個詞「左」到「內」,如果你想使用其他類型的聯接。 它不必具有相同的字段名稱「groupID」。但是有必要有一個共同的功能,或者它代表着彼此相關的東西。

鏈接: 這裏有一些鏈接,可以幫助您 http://www.w3schools.com/sql/sql_join.asp http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

享受編碼.. :)

+0

那麼uid = 1和order by dateadded呢?我在哪裏放這些?在一開始的時候? –

+0

你可以在where子句中和之後添加它:「select ... where uid = 1 order by dateadded」 – mCube