1

同様のフィールドを持つテーブルがいくつかありますが、まったく同じではありません。

それらが持つ同じフィールドは、説明 (テキストフィールド) と変更 (unixtime) です。

unixtime に基づいて、これらのテーブルから最後に変更されたアイテムを選択したいと思います。テーブルが同じではなく、複数のテーブル選択がタイムアウトするため、UNION を使用できません。

私はこれを探していましたが、運がありません。人々はJOINSまたはSELECT A. 、B. FROM table A、table Bを使用しています

4

3 に答える 3

4

それらはどのように異なりますか?たぶん、共通のフィールドを取り出すことができます:

select t1.name1 as name from table1
union
select t2.name2 as name from table2
于 2009-01-13T11:46:58.990 に答える
0

これを試して:

SELECT
    IF (A.modified > B.modified, A.modified, B.modified) AS modified,
    IF (A.modified > B.modified, A.description, B.description) AS description,
FROM
    (SELECT description, modified FROM A ORDER BY modified DESC LIMIT 1) AS A,
    (SELECT description, modified FROM B ORDER BY modified DESC LIMIT 1) AS B
LIMIT 1

ただし、2 つのクエリを実行するのとほぼ同じ (より複雑なだけ) であるため、お勧めしません。

于 2009-01-13T11:47:09.130 に答える
0

select timesou の場合は 'modified' に desc index を追加し、select で limit を使用して 1 行 (最後の行) だけを返すようにしてください。

次に、次のことができます。

SELECT 
    A,B,C,D, desc, modified 
FROM 
   TABLEA
UNION ALL 
SELECT 
    CAST(E as <A type>), CAST(F AS <B type>) ..., desc, modified   
FROM 
   TABLE B  
于 2009-01-13T11:53:59.910 に答える