За последние 24 часа нас посетили 17945 программистов и 1651 робот. Сейчас ищут 2142 программиста ...

Про Destinct запрос....

Тема в разделе "MySQL", создана пользователем Vladsss, 24 сен 2008.

  1. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Таблица с тремя столбцами flag, a1, a2.
    В поле a1 и а2 храняться номера от 1 до n (могут повторяться, могут отсутствовать) в обоих столбцах. (Не может в одной записи базы быть одинаковые числа в этих полях). В столбце flag, числа 0 и 1.
    Нужно выбрать из таблицы те записи где в поле flag стоит 0, в поле a1 стоит i (или любая из цифр от 1 до n), а в поле a2, числа все которые есть только разные.
    Не получается написать запрос для такой выборки. Помогите
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    SELECT * FROM table
    WHERE flag = 0
    GROUP BY a2
     
  3. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Неподходит, так выведет все например 2 где стоит флаг 0. А должно быть вхождение по одному разу. И значения должны быть все доступны по mysql_fetch_array (то есть выводилось и flag и a1 и а2)
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Сам себя хорошо понимаешь?
     
  5. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Ну вот к примеру есть таблица
    id f a1 a2
    1 0 1 2
    2 1 1 2
    3 0 1 3
    4 0 1 2
    5 0 3 1
    a1=1. Нужно вывести строки 3,4!!! Строка 1 не попадает в выборку так как такая же стоит в 4. Или наоборот выводим 1 вместо 4. А id=5 не выводится так как выборку делаем по a1, и в a2 все 1 опускаем.
    Можно ли это сделать 1 запросом?
     
  6. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    [sql]
    SELECT * FROM table
    WHERE a1 = 1 AND
    f = 0 AND
    GROUP BY a2
    [/sql]