2010-08-20 6 views
1
"SELECT * from posts A, categories B where A.active='1' 
    AND A.category=B.CATID order by A.time_added desc 
    limit $pagingstart, $config[items_per_page]"; 

Я думаю, что он говорит, что выбирает строки из таблицы «posts», так что активная запись в каждой строке равна 1, но я не понимаю остальных. Пожалуйста, объясни. Спасибо.Объясните этот короткий SQL-запрос мне, пожалуйста

ответ

4

Он выбирает столбцы из сообщений (далее с псевдонимом «A»), и связанный с ним по категориям (из упомянутых как «B») для каждого сообщения, где:

  • Posts.Active = 1
  • Категория публикации существует в таблице «Категории» (если столбец не имеет соответствующей категории в этой таблице, строка не возвращается)
  • Приказывает результаты A.Time_added (в отмена порядка, от самого нового до самого старого)
  • Возвращает только строки «$ config [items_per_page]», начиная с «$ pa gingstart "

Я не уверен, какой бренд SQL это, поскольку я не признаю предельную инструкцию или переменные $, но это суть.

+1

$ stuff может быть PHP или что-то еще? –

+0

A и B - это псевдонимы, поэтому вам не нужно печатать сообщения и категории. Сохраняет несколько нажатий клавиш! – decompiled

+0

Не забудьте «AND A.category = B.CATID», возвращает строки, где существует A.category в столбце CATID таблицы B –

0

Похоже, что это попытка выбрать все активные сообщения, заказать их с помощью новейших в верхней части и ограничить количество записей на странице. Семантика A.active='1', вероятно, означает, что сообщение активно, но я предполагаю.

Похоже, MySQL с PHP.

0

Отбирает данные из posts и categories, объединяя их вместе, где posts.category=categories.CATID. Он отфильтровывает все строки, где posts.active!=1, а затем заказы по убыванию posts.time_added, возвращая не более $config[items_per_page] позиций, начиная с $pagingstart.

0

Он выбирает все активные посты (и их категорию), в первую очередь в первую очередь. Однако он имеет пейджинговый механизм, поэтому он показывает только $config[items_per_page] сообщений, начинающихся с номера $pagingstart.

0

Выберите строки из таблицы сообщений и таблицы категорий, объединенные в одну таблицу идентификатором категории (используя то, что я называю ленивым соединением, но это может быть только мое мнение, и я не являюсь батником), отсортированные в порядке убывания по добавленному времени, отображающие только записи $ items_per_page, начинающиеся с $ pagingstart.

1

Вы получите на строки

  • от А и В, где категория и матч CATID («пересечение» немного диаграмма Венна)

  • Строки для A отфильтровываются те, где Active = 1

  • отсортировано по разным дням. последняя первая

  • limit говорит, что y строк начинается в строке x. х и у определяются рода

0

Он выбрать все столбцы из таблицы должностей и категорий где posts.active равно 1 и где posts.category присоединяется к categories.catid и это упорядочено сообщения.time_added предел начала и конца задается двумя переменными $ pagingstart, $ конфигурационными [items_per_page]

0

Это говорит:

1) Выбрать все от обоих Posts & Categories где Posts.Active = 1 и Posts.Category = Category.CATID.
2) В заявлении Order by указано, что они должны быть представлены (сверху вниз) с новейшим номером Post.Time_Added.
3) Наконец, в пункте limit говорится (я думаю, я не очень часто использую limit): Только захватите $spagingstart (переменную, которая была установлена ​​в какой-то момент), количество элементов и только пока запишите $config[items_per_page].

1

posts A, categories B - это термин «неявный JOIN». Он возвращает все возможные комбинации записей от A и B, которые затем фильтруются по условиям WHERE.

Явный синтаксис гораздо более удобные для чтения:

SELECT * 
FROM posts A 
JOIN categories B 
ON  B.CATID = A.category 
WHERE A.active='1' 
ORDER BY 
     A.time_added DESC 
LIMIT $pagingstart, $config[items_per_page] 

Это означает, что: «для каждой записи из A, принять все записи из B которого catid таких же, как категории A«s».

ORDER BY A.time_added DESC позволяет вашим сообщениям возвращаться от последних до самых ранних.

LIMIT 100, 10 делает запрос, чтобы вернуть только сообщения от 100th до 110th.

Смежные вопросы