CID BY kopya ORDER DISTINCT kimliği Select SQL

3 Cevap php

ben böyle bir şey istiyorum:

SELECT DISTINCT ID from copies WHERE timestamp < 1229444506 ORDER BY CID

Sorun bu bir tek kimliği dönmek ve ben tabloda CID ve diğer sütunları ihtiyaç vardır.

Bu diğer neden lutfen için tamamen yanlış olduğunu, bu yüzden ben gerekenleri açıklayacağım olabilir.

Ben bir tablo var "rekor" Benim maintable her satır-değişim. Bu yüzden ileride ben zamanda geriye gitmek ve ana tablo zaman içinde belli bir tarih gibi görünüyordu nasıl görmek mümkün olacak.

Peki i need damgası CID, BY tüm satırları SİPARİŞ bir sorgu < 1229444506, VE KODU bunları DISCTINCT.

Ben ilk en yeni CID tarafından sipariş edildiğinde, kimliği tarafından ilk satır dönmek için sorguya istiyorum.

Ive tried to get this working with different methods but no luck. Any suggestions?

3 Cevap

I am not sure if I got it correctly, but what about creating a subquery that will just select the columns? You wrote: "I want to the query to return the first row by ID, when ordered by CID newest first."

Yani, bir alt sorgu yapalım:

SELECT id, max(cid) as maxcid FROM copies WHERE timestamp < XX group by id

Bu <=> size istediğiniz CID ilişki id verecektir. Ve şimdi katılın:

SELECT copies.* FROM copies, (SELECT id, max(cid) as maxcid FROM copies WHERE timestamp < xxx group by id) x  
WHERE copies.id=x.id AND copies.cid=x.maxcid;
SELECT * FROM copies WHERE timestamp < 1229444506 GROUP BY ID ORDER BY CID DESC;

EDIT:

SELECT * FROM copies WHERE timestamp < 1229444506 GROUP BY ID ORDER BY CID;

Ayrıca deneyebilirsiniz:

SELECT * FROM copies WHERE timestamp < 1229444506 GROUP BY ID ASC ORDER BY CID;

Veya:

SELECT * FROM copies WHERE timestamp < 1229444506 GROUP BY ID DESC ORDER BY CID;

İşe yarıyor mu?

nasıl veritabanı ayrı sütun eklemek için hangi satırların biliyorsunuz? Eğer söylüyorlar ː

 id | name
 ---+-----
  1 | a
  1 | b

Şimdi varsayımsal sorgusu: SELECT DISTINCT id, name FROM table. Hangi isim size sonucu göstermek için bekliyorsunuz? a veya b?

size id mysql grup sonucunuzu can bir sorun değil, ama alırsınız isim hangi belirtilmemiş ise

SELECT `id`, `name` FROM `copies` WHERE `timestamp` > 123456789 GROUP BY `id` ORDER BY `cid` DESC