0

次のテーブル構造があります。最近 added_date によって追加されたすべてのテーブルからレコードを選択する必要があります。

によって最近追加されたものtitlename, sourcename, description, addde_dateから取得しようとしています。table1, table2, table3added_date

タイトル名とソース名はタイトルとソーステーブルに格納されます。

これらのテーブルでユニオンを試しましたがTable3、異なる列が含まれています。

表1

    id   titleid   sourceid     text_content        added_date   -------
    1      15         20         XYzgff       10-10-2012:5:30pm
    2      10         5         gghghggg      10-11-2012:5:30pm

テーブル2

    id   titleid   sourceid    description     added_date   -------
    1       6         8         fhjjjjjkk     11-04-2012:5:30pm 
    2      10         5         gghghggg      10-11-2012:5:30pm

テーブル3

    id       url         Title     Description       added_date       -------------
    1       ggggg        fhhh        llllll         31-04-2012:5:30pm
    2       kkkkkk       ttttt       kkkkkk         10-11-2012:5:30pm  

タイトル表:

    titleid      title_name
      5            lgsfsgsf
      6            lkklgyy
      10           tyyiugj
      15          lklklklkl

ソーステーブル:

    sourceid      source_name
       5            jlkjljlj
       8            ghhhhhhh
       20           hhhhhhhf
       6            llllllll
4

1 に答える 1

0

を使用する必要がありますUNION。これを試してください(テストされていません):

SELECT t.title_name, s.source_name, t1.text_content, t1.added_date   
FROM Table1 t1
JOIN Title T 
   ON t1.TitleId = T.TitleId
JOIN Source S 
   ON t1.SourceId = S.SourceId
UNION
SELECT t.title_name, s.source_name, t2.description, t2.added_date   
FROM Table2 t2
JOIN Title T 
   ON t2.TitleId = T.TitleId
JOIN Source S 
   ON t2.SourceId = S.SourceId
UNION
SELECT t.title_name, s.source_name, t3.description, t3.added_date   
FROM Table3 t3
JOIN Title T 
   ON t3.TitleId = T.TitleId
JOIN Source S 
   ON t3.SourceId = S.SourceId

Table3 に SourceId または TitleId がないことに気付きました。その情報を取得することはできませんが、次のことはできます。

SELECT DISTINCT Title_Name, Source_Name, Text_Content, Added_Date
FROM 
(
   SELECT t.title_name, s.source_name, t1.text_content, t1.added_date   
   FROM Table1 t1
   JOIN Title T 
     ON t1.TitleId = T.TitleId
   JOIN Source S 
     ON t1.SourceId = S.SourceId
   UNION
   SELECT t.title_name, s.source_name, t2.description, t2.added_date   
   FROM Table2 t2
   JOIN Title T 
     ON t2.TitleId = T.TitleId
   JOIN Source S 
     ON t2.SourceId = S.SourceId
   UNION
   SELECT t3.title, 'Unknown', t3.description, t3.added_date   
   FROM Table3 t3
) t
ORDER BY added_date
于 2013-01-17T04:46:22.907 に答える