2016-01-13 4 views
0

У меня есть таблица SQLite с колонкой number, которая может иметь дубликаты.Как выбрать отдельные записи?

Как выбрать записи, которые получают разные строки по числу?

SELECT 
    contacts_table._id AS _id, 
    title, title_short, 
    DISTINCT number, 
    note, 
    categories, 
    contacts_categories_name, 
    contact_id, 
    contacts_categories_catalog_id 
FROM contacts_table 
LEFT OUTER JOIN contacts_categories_table 
    ON(contacts_categories_contact_id = contact_id 
     AND contacts_categories_current_user = current_user) 
WHERE ((current_user = ? AND saved =? 
    AND (title LIKE ? OR number LIKE ? OR note LIKE ?)) 
    AND (contacts_categories_catalog_id = ?)) 
ORDER BY 
    contacts_categories_name = 'UNSORTED' DESC, 
    contacts_categories_name ASC, 
    title ASC 
+0

Как насчет значений других столбцов? Когда есть несколько строк с одним и тем же «числом», из которого они должны появиться? –

+0

@CL. кроме '_id' и 'contacts_categories_catalog_id' все остальные столбцы одинаковы. Таким образом, принятие первой строки и игнорирование других будет работать хорошо. Для частного запроса это не означает, что «contacts_categories_catalog_id» будет возвращен, любое заполнение подходит так же долго, как оно присутствует – Yarh

ответ

0

Просто добавьте GROUP BY:

SELECT 
    MIN(contacts_table._id) AS _id, 
    title, 
    title_short, 
    number, 
    note, 
    categories, 
    contacts_categories_name, 
    contact_id, 
    MIN(contacts_categories_catalog_id) 
FROM ... 
GROUP BY 
    number 
ORDER BY ...; 
Смежные вопросы