0

テーブルがテストのサンプルデータがあります

name | catid | date
------------
abc  |   1
def  |   2
ghi  |   1
jkl  |   2
mno  |   1
pqr  |   3

そして私の質問

SELECT * FROM test WHERE catid = 1 AND catid = 2 AND catid = 3 ORDER BY date DESC

結果で値を取得する方法は

    name | catid
    ------------
    abc  |   1
    def  |   2
    pqr  |   3
4

3 に答える 3

2
SELECT  a.*
FROM    TableName a
        INNER JOIN
        (
            SELECT  catid, MAX(DATE) max_date
            FROM    tableName
            GROUP   BY catID
        ) b ON  a.catID = b.catID AND
                a.date = b.max_date
于 2013-04-21T15:28:01.913 に答える
1
SELECT name, catid FROM test WHERE catid IN (1, 2, 3) GROUP BY catid

catid = X OR catid ... よりも単純な IN 演算子が必要だと思います(ANDではなくORが必要です)

于 2013-04-21T15:30:26.383 に答える
0

目的の出力に基づいて、これはクエリになる可能性があります。

select catid, min(name)
from yourtable
where catid between 1 and 3
group by catid

しかし、質問で提供された情報に基づいて、何を望んでいるのかを知るのは困難です。

于 2013-04-21T15:32:30.873 に答える