1

私はこのような構造のテーブルを持っています:

 --------------------------------------------
|  id  |  tid  | uid |   title   |   time    |
 --------------------------------------------
|  1   |   3   | 15  |           |   120333  |
 --------------------------------------------
|  2   |   3   | 15  | Lorem ip..|   120394  |
 --------------------------------------------
|  3   |   3   | 15  |           |   120344  |
 --------------------------------------------
|  4   |   2   | 15  | Lorem ip..|   128994  |
 --------------------------------------------
|  5   |   2   | 15  | Lorem ip..|   126782  |
 --------------------------------------------

そして、私はこのようなクエリを持っています(「uid」を持つすべてのレコードを選択します-ユーザーIDは15です):

SELECT * FROM my_table WHERE uid = :uid GROUP BY tid ORDER BY time DESC

これらは正常に機能しますが、1つの問題があります。このクエリの結果を表示すると、「タイトル」行が空になることがよくあります。(注:すべての「tid」番号には、少なくとも1つの「タイトル」が必要です)

このクエリに常にタイトルを表示させて、空になることはないようにするにはどうすればよいですか?

4

2 に答える 2

2

Titleフィールドに任意の値を使用する場合、またはそれらがすべて同じである場合は、その列に対してMIN()を実行できます。MINはnullを省略します。

于 2012-12-18T19:12:12.543 に答える
-2
SELECT COALESCE(title, 'no title'), * FROM my_table WHERE uid = :uid GROUP BY tid ORDER BY time DESC
于 2012-12-18T19:18:11.977 に答える