SELECT *
FROM articles, tags, connection
WHERE articles.id IN (SELECT id_article FROM connection WHERE id_tag=17)
ORDER BY articles.id
Когда вставляю ЛИМИТ в SELECT id_article FROM connection WHERE id_tag=17 то MySQL говорит:
SELECT *
FROM articles, tags, connection
WHERE articles.id IN (SELECT id_article FROM connection WHERE id_tag=17)
ORDER BY articles.id
Цитата |
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery |
Цитата (Romms @ 18.04.2010 - 08:44) |
Брат говорит что.... |
Цитата (Romms @ 18.04.2010 - 08:44) |
Или хотя бы в Постгре работать будет? |
with
id_list as (SELECT id_article FROM connection WHERE id_tag=17 limit 5)
SELECT *
FROM articles, tags, connection
WHERE articles.id IN id_list
ORDER BY articles.id
Цитата (vagrand @ 19.04.2010 - 12:09) |
Жаль что речь у автора идет не о посгресе |
Цитата (Romms @ 18.04.2010 - 08:44) |
Или хотя бы в Постгре работать будет? |
SELECT *
FROM articles, tags, connection
WHERE articles.id IN (SELECT id_article FROM connection WHERE id_tag=17)
ORDER BY articles.id
select *
from articles a
inner join connection c on a.id = c.id_article
where c.id_tag = 17
order by a.id
limit 10
Цитата (glock18 @ 19.04.2010 - 12:07) |
запрос содержит одну-две таблицы, которые не используются |
Цитата |
все делается без подзапроса (join тем не менее нужен, разумеется). что-то типа этого: select * |
SELECT `tags`.`id` AS `tags.id`,
`tags`.`name` AS `tags.name`,
`articles`.`id` AS `articles.id`,
`articles`.`name` AS `articles.name`,
`articles`.`short`,
`articles`.`date`,
`articles`.`ip`
FROM articles, tags, connection
WHERE articles.id IN (SELECT id_article FROM connection WHERE id_tag=17)
and articles.id = connection.id_article
and tags.id = connection.id_tag
ORDER BY articles.id
select *
from articles a
inner join connection c on a.id = c.id_article
inner join tags t on t.id = c.id_tag
where c.id_tag = 17
order by a.id
limit 10