Опубликовано Февраль 2, 2012 рубрики:
SQL|Комментарии к записи SQL запрос в красивый LINQ отключены
есть 2 таблицы, в первой хранится общая информация о книгах и журналах, во второй жанры и некоторые детали.
нужно выбрать все жанры книг которые есть в базе.
SQL запрос:
select distinct info.[GenreId] from [Litera] as lit
join [Information] as info on lit.LitId=info.LitId
как составить простой и красивый linq запрос, вопрос пока остается открытым.
Опубликовано Май 28, 2011 рубрики:
SQL|Комментарии к записи задачка отключены
есть таблица данных (id, № страницы, № пользователя, флаг голосования).
пример таблицы:
нужно выбрать все записи по которым проголосовали все обозначенные в таблице пользователи.
вот эти:
для этой задачки подходит вот такой запрос:
SELECT DISTINCT c1.[page]
FROM [dbo].[table] as c1
LEFT JOIN [dbo].[table] as c2
ON c1.page = c2.page
WHERE c2.voite = 1
Опубликовано Май 19, 2011 рубрики:
SQL|Комментарии к записи декартово произведение отключены
mssql
SELECT t1.[Id] , t2.[Id]
FROM [dbo].[table1] as t1 CROSS JOIN [dbo].[table2] as t2;
для каждой записи из таблицы table1 сопоставляются все записи из таблицы table2
Опубликовано Июнь 14, 2010 рубрики:
SQL|Комментарии к записи SQL, удалить все данные старше 2х дней отключены
В качестве условия в этом запросе служит параметр времени. Тип поля, по которому осуществляется выборка — DATETIME.
Вид запроса:
DELETE FROM `table` WHERE `date` < DATE_ADD( NOW( ) , INTERVAL -2 DAY );
[/sql]
Опубликовано Июнь 14, 2010 рубрики:
SQL|Комментарии к записи SQL запрос, выборка данных в промежутках между датами отключены
Понадобилось мне выбрать данные, что находится между 2-мя промежутками времени.
Конкретно эти промежутки были описаны так, крайняя левая — самая ранняя запись, крайняя правая — текущий момент.
SELECT *
FROM `base`.`table`
WHERE YEAR( `date` ) >= (
SELECT YEAR( MIN( `date` ) )
FROM `base`.`table`
WHERE 1
LIMIT 1 )
AND MONTH( `date` ) >= (
SELECT MONTH( MIN( `date` ) )
FROM `customer`.`table`
WHERE 1
LIMIT 1 )
AND DAYOFMONTH( `date` ) >= (
SELECT DAYOFMONTH( MIN( `date` ) )
FROM `customer`.`table`
WHERE 1
LIMIT 1 )
AND YEAR( `date` ) <= YEAR( NOW( ) )
AND MONTH( `date` ) <= MONTH( NOW( ) )
AND DAYOFMONTH( `date` ) <= DAYOFMONTH( NOW( ) )
ORDER BY `date` DESC ;
[/sql]
что делает запрос: он выполняет 3 подзапроса, для выборки минимального года, месяца и числа, в качестве левого условия, и с правой стороны ставит текущие значения даты.
Такой вид запроса удобен если параметры как левой части запроса так и правой могут быть заданы.