St.I.An: ппц, ну как можно внешний ключ делать строковым, если он указывает на инт...
тогда проще (или тупее)
SELECT *,(SELECT title_rus FROM country WHERE country.id=base.country) as country_title
FROM base WHERE base.id IN (SELECT id FROM base ORDER BY rating DESC LIMIT 20)
ORDER BY base.country
Ответ MySQL:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
St.I.An: SELECT base.*,countries.name
FROM base LEFT JOIN countries ON (base.id_country=countries.id)
WHERE base.id IN (SELECT id FROM base WHERE show=1 ORDER BY rating DESC LIMIT 20)
ORDER BY base.id_country
Спасибо но
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
:(
mff добавил 25.12.2009 в 19:06
MOP1: CREATE TEMPORARY TABLE `base_tmp` SELECT * FROM base WHERE show=1 ORDER BY rating DESC LIMIT 20;
SELECT base_tmp.*, countries.name
FROM base_tmp
LEFT JOIN countries ON (base_tmp.id_country=countries.id)
ORDER BY base_tmp.id_country
Спасибо. Выбрало но сортировка не правильно работает. :(
MOP1: может выложите структуру бд ;) чтобы мы не гадали тут
есть табличка:
CREATE TABLE `base` (
`id` int(10) unsigned NOT NULL auto_increment,
`channel` char(255) NOT NULL,
`country` char(255) NOT NULL,
`rating` int(10) NOT NULL,
`views` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Tempter спасибо, вот прописал, но сортирует не по стране выбранное, а по рейтингу.
SELECT * FROM country as country
LEFT JOIN base_ as base_ ON base_.country = country.id
WHERE base_.show = 1
ORDER BY base_.rating DESC
LIMIT 20
country - табличка со странами, в ней id (он равен id_channel из таблички base_) и title название страны
base_ - табличка с каналами, в ней же рейтинг, id стран и show
Нужно, чтобы сначало запрос отбирал из таблички base_ 20 записей с наибольшим рейтингом, а потом полученный результат отсортировать по названию страны (title) в алфавитном порядке
Hencon, установите любой ftp клиент (Total Commander например), после покупки хостинга, вам выслали на email пароли доступа от ftp. Введите ip адрес, порт, логин и пароль в ftp клиенте и подключитесь. Далее закидывайте ваш сайт на хостинг. Домен обычно дают бесплатно, при покупке хостинга, если нет, то в центральной панели управления хостингом, закажите или перенесите свой домен. Пропишите его. Далее нужно написать в суппорт вашего регистратора (если в панели управления, у регистратора домена нет возможности прописать NS сервера самому) и попросить делегировать домен на NS сервера хостера (их можно посмотреть в центральной панели управления, у хостера).
ппц, ну как можно внешний ключ делать строковым, если он указывает на инт...
тогда проще (или тупее)
SELECT *,(SELECT title_rus FROM country WHERE country.id=base.country) as country_title
FROM base WHERE base.id IN (SELECT id FROM base ORDER BY rating DESC LIMIT 20)
ORDER BY base.country
Ответ MySQL:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
SELECT base.*,countries.name
FROM base LEFT JOIN countries ON (base.id_country=countries.id)
WHERE base.id IN (SELECT id FROM base WHERE show=1 ORDER BY rating DESC LIMIT 20)
ORDER BY base.id_country
Спасибо но
mff добавил 25.12.2009 в 19:06
CREATE TEMPORARY TABLE `base_tmp` SELECT * FROM base WHERE show=1 ORDER BY rating DESC LIMIT 20;
SELECT base_tmp.*, countries.name
FROM base_tmp
LEFT JOIN countries ON (base_tmp.id_country=countries.id)
ORDER BY base_tmp.id_country
Спасибо. Выбрало но сортировка не правильно работает. :(
может выложите структуру бд ;) чтобы мы не гадали тут
есть табличка:
и
Задача та же, из базы base выбрать 20 строчек с наибольшим рейтингом(rating) и полученное отсортировать по стане(title_rus) 😕
Tempter ага, все равно по рейтингу сортировка :(
Tempter спасибо, вот прописал, но сортирует не по стране выбранное, а по рейтингу.
country - табличка со странами, в ней id (он равен id_channel из таблички base_) и title название страны
base_ - табличка с каналами, в ней же рейтинг, id стран и show
Нужно, чтобы сначало запрос отбирал из таблички base_ 20 записей с наибольшим рейтингом, а потом полученный результат отсортировать по названию страны (title) в алфавитном порядке
Ага, выяснил, страны оказалось хранятся в другой табличке :( А в этой только номера (id) стран. Как же быть?
это, вообще-то ВЕРТИКАЛЬНАЯ координата. =))))
T.R.O.N, ага :)
Заработался :)
offsetTop
Сейчас попробую 🤪
Ураааааааааааааааааааа!
0 -> 10
0 -> 10
0 -> 0
20 -> 30
Hencon, установите любой ftp клиент (Total Commander например), после покупки хостинга, вам выслали на email пароли доступа от ftp. Введите ip адрес, порт, логин и пароль в ftp клиенте и подключитесь. Далее закидывайте ваш сайт на хостинг. Домен обычно дают бесплатно, при покупке хостинга, если нет, то в центральной панели управления хостингом, закажите или перенесите свой домен. Пропишите его. Далее нужно написать в суппорт вашего регистратора (если в панели управления, у регистратора домена нет возможности прописать NS сервера самому) и попросить делегировать домен на NS сервера хостера (их можно посмотреть в центральной панели управления, у хостера).
Faster спасибо большое, вот так работает:
$result = mysql_query("select count(id_channel), `id_channel` from `table` group by `id_channel` order by 1 desc limit 1");ТС в табличке сколько записей?
Каждый день + 2000-3000 записей
P.S. Будьте удачливы.
+550 страниц в индексе.