Ответы пользователя по тегу SQL
  • Цикл в цикле, как реализовать ?

    svd71
    @svd71
    @WaRstim :
    "необходимо два отдельных запроса, так они будут в разных местах javascript"


    Код в php и если играет какую то роль в javascript, то не понятно что нужно.
    /*Выборка дат по закупкам*/
    $procurement = mysql_query ("SELECT data_start_god 
    FROM goods 
    WHERE id_com_god='{$company['inde_com']}' GROUP BY data_start_god  ORDER BY `data_start_god` ASC LIMIT 7",$db);
    while ($rowk = mysql_fetch_array($procurement))
    echo "'{$rowk['data_start_god']}',";
    
    foreach($rowk as <b>$itm</b>) {
    /*Подсчет cуммы товара*/
    $product = mysql_query ("SELECT SUM(start_col_god) 
    FROM goods 
    WHERE id_com_god='{$company['inde_com']}' AND data_start_god='{<b>$itm</b>['data_start_god']}'  ORDER BY `start_col_god` ASC LIMIT 7",$db);
    while ($pro = mysql_fetch_array($product))
    echo "'$pro[0]',";
    }


    @metamorph правильно написал, при любой конструкции достаточно обойтись одним запросом, но так же можно его разделить на два запроса.
    $procurement = mysql_query ("SELECT data_start_god<b>, sum(start_col_god) as sum_col_god </b>
    FROM goods 
    WHERE id_com_god='{$company['inde_com']}' GROUP BY data_start_god  ORDER BY `data_start_god` ASC LIMIT 7",$db);
    while ($rowk = mysql_fetch_array($procurement))
    echo "'{$rowk['data_start_god']}',";
    Ответ написан
    1 комментарий
  • Как сделать запрос, без повторных данных ?

    svd71
    @svd71
    procurement = mysql_query ("SELECT data_start_god 
    FROM goods 
    WHERE id_com_god='{$company['inde_com']}' GROUP BY data_start_god  ORDER BY `data_start_god` ASC LIMIT 7",$db);
    while ($rowk = mysql_fetch_array($procurement))
    echo "'{$rowk['data_start_god']}',";
    Ответ написан
    1 комментарий
  • Как организовать SQL таблицу?

    svd71
    @svd71
    Это действитнльно бред. Тогда требуется еще одна таблица:
    Состав команды(ид_рабочей команды, ид_работника).

    Рабочая команда будет являться этаким заголовком, с датой, номером и целями.
    А состав команды будет содержать перечень рабчих, которые входят в определенный момент в определенную команду.
    Ответ написан
    Комментировать
  • MySQL-запрос с сортировкой по двум таблицам?

    svd71
    @svd71
    select u.*,
      (select count(*) from subscribes s where s.to_user_id=u.user_id) as SUBSCRIBESCOUNT
    from users u
    order by u.rating desc, SUBSCRIBESCOUNT desc, u.place asc
    Ответ написан
    1 комментарий
  • Как панельно составить сложный SQL запрос?

    svd71
    @svd71
    select * from lab l,
      left join tab t on t.id_labr = l.id
      left join student s on s.id = t.id_stud
    where 
      t.id_rez > 1
    Ответ написан
  • Объединение нескольких БД в одну

    svd71
    @svd71
    аких центров много и эти поля везде похожи. но названия датчиков разные.

    делаете id, logentid и name как превичный ключ.
    Ответ написан
    Комментировать
  • Как вывести все поля с максимальным совпадением значений полей?

    svd71
    @svd71
    select u1.*, u2.* 
    from users u1, users u2
    where u1.data = u2.data and u1.id <> u2.id
    order by u1.id
    Ответ написан
    Комментировать
  • SQL запрос: как сделать выборку из двух баз по несовпадениям?

    svd71
    @svd71
    select * from database1.users u1, database2.users u2
    where
      u1.family=u2.family and u1.firstname=u2.firstname and u1.lastname=u2.lastname 
      and u1.id <> u2.id
    Ответ написан
    Комментировать
  • Как работает этот SQL запрос?

    svd71
    @svd71
    главным запросом является таблица С. именно количество записей в ней будет отображатся в выборке. а столбцы text1 и text2 вытаскиваются из вложенных запросов к таблицам В и А. а те в свою очередь будут брать значения для поиска из основного запроса, то есть из таблицы С.
    Ответ написан
    1 комментарий
  • Почему тип Varchar определяется как TWideMemoField?

    svd71
    @svd71
    Отсуствие длинны может дать понять датасету, что предоставленные данные из BLOB-полей. Поэтому попробуйте задать длинну или же добавляйте поля нужного типа вручную в дизайнере или перед открытием в рантайме.
    Ответ написан
    1 комментарий
  • Как реализовать выборку из БД по параметрам?

    svd71
    @svd71
    Подкорректируем немного @Satanpit :
    SELECT contentid 
    FROM `table` 
    WHERE (tmplvarid = 22 or tmplvarid =14) AND value LIKE 'Декопрессор%' AND contentid BETWEEN 45 AND 60
    Ответ написан
  • Какую выбрать базу данных для хранения большого количества XML документов?

    svd71
    @svd71
    Что мешет туже структуру хранить в текстовом или blob поле и истользовать соотвественно?

    Но это самое глупое решение. Лучше присмотреться к реляционным зависимостям любой БД, перегонять на-лету xml -записи и записи-xml.
    Ответ написан
    Комментировать
  • Есть огромный csv-файл с данными (over 100k строк). Как все это добро на PHP, без SSH, загнать в MySQL?

    svd71
    @svd71
    Пробовал читать файл по 1000 строк (каждый раз приходится его открывать), естественно, в 30 сек оно не укладывается...


    Таки вещи делаются через AJAX. Файл открывается на сервере и в браузер клиента пересылается инфа о количестве строк. Далее клиент позылает через AJAX короткие задания: занести в базу строки с 1 по 10. Даже при большом файле на короткие операции не такие уж длинное время требуется. После выполнения этоко маленького куска сервер через AJAX сообщает результат операции: успешно внесено, ошибка в строке NNN или что то еще.

    Минусом идет то, что у клиента все время должна быть открыта сессия браузера. При ее закрытии ничего бельше непосылается серверу и оперции останавливаются.
    Ответ написан
    1 комментарий
  • Почему не стоит использовать идентификатор сущности как первичный ключ в базе?

    svd71
    @svd71
    Первичный ключ должен быть уникальным. Высказываение @Kerman можно бы принять за истину, но еще одни индекс никак не мешает, если он нужен для дела.

    Замечания @sebres очень даже имеют место. Многие СУБД конструируются на оптимальную работу именно с числовыми полями целого типа (хотя некоторые и позволяют использовать при желании в качестве ключа так называемый GUID - именно символьного типа). Сомневаюсь, что например MySQL имеет оптимизацию при работе с целочисленным типом: достаточно посмотреть на представление его целочисленных данных в таблице - они представлены в виде текста, а не конвертированы в 8 или 16 байтовое значение. Соотвествено сервер либо сам проводит посимвольное сравнение, либо предварительно конвертирует значение в "истинный", машинный int, что тоже сказывается на скорости. Вывод: нужно узнать, что производительней использовать для вашей СУБД.

    Преимущества суррогатного ключа: Если первичный ключ имеет большую длинну, то при формировании ссылок вторичных(внешних) ключей в других таблицах есть необходимость замиенить его чем-то одновременно компактным и одновременно уникальным, тем более подверженному автоматической генерации, а не тупо копировать длинную структуру.
    Ответ написан
    Комментировать
  • «Чистый» SQL в веб-проектах

    svd71
    @svd71
    Если создавать структуры, подобные «объект-ориентированным», с хранением данных в базе, то для работы таких объектов логичнее использовать простые запросы. Запросы начинают усложняться при сложности объектов: объект включает в себя много других объектов и что бы съэкономить время на обращении к БД использует сложный запрос.

    Так же сложные запросы могут отребоваться при составлении отчетов и других человекопонятных вещей.

    Просто старайтесь при таких подходах исходить из простоты. Чем проще написано, тем проще настраивать и проще контролировать. Да и скорость выигрывает.
    Ответ написан
    Комментировать