- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Помогите составить запрос.
Есть две таблицы. t1 и t2
Нужно вытащить данные из t1 и кол-во строк во второй, где t1.id=t2.name и t2.col1='value'
el_aspect добавил 26.09.2009 в 12:22
Сделал так
SELECT t1.id, (SELECT count(*) as count FROM t2 WHERE name=t1.id) AS count FROM t1
$query = mysql_query("SELECT * FROM `t1`, `t2` WHERE `t2`.`name` = `t1`.`id` and `t2`.`col1` = 'value'");
$count = mysql_num_rows($query);
Иногда дамп данных скажет лучше слов. Я вот не могу понять что именно вы хотели. А предложенное решение еще больше запутывает.
может как-то так ?
select t1.*,g_t2.cnt from t1,
( select name,count(*) cnt from t2 group by name) g_t2
where t1.id=g_t2.name;
допусти в t1 есть одна строка id=1
в t2 есть три строки где name=1
нужно получить данные из таблицы t1, а именно id=1
и кол-во строки из t2, где t1.id=t2.name и t2.col1='value', тоесть count=3
То есть запрос на один конкретный t1.id ? А откуда возникает ограничение по t2.col1='value' ?
на первый взгляд вы нормально все написали, только нужно ограничение на t1.id :
SELECT t1.id, (SELECT count(*) as count FROM t2 WHERE name=t1.id) AS count FROM t1
where t1.id='123123';
некоторые скажут, что, мол, подзапросы - зло, но в этом случае он выполняется один раз.
Вроде, я предложил то, что подходит по заданию.
Это дополнительное условие выбора для t2, в принципе роли не играет.
Мой вариант работает, думаю он самый удачный, всем спасибо.
el_aspect добавил 26.09.2009 в 12:51
Ваш вариант посчитает кол-во строк выбранных из таблицы
Ну по это и просил :-)
Помогите составить запрос.
Есть две таблицы. t1 и t2
Нужно вытащить данные из t1 и кол-во строк во второй, где t1.id=t2.name и t2.col1='value'
el_aspect добавил 26.09.2009 в 12:22
Сделал так
SELECT t1.id, (SELECT count(*) as count FROM t2 WHERE name=t1.id) AS count FROM t1
select t1.id,count(*) as count from t1 left join t2 on t2.name=t1.id and t2.col1=value group by t2.col1,t2.name