- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Можно ли сделать три независимые выборки?
Например, UNION объединяет по однотипным таблицам. JOIN объединяет таблицы по указанным параметрам для выборки.
А могу ли я вернуть значения, никак не связанные друг с другом.
Например, имея 3 таблицы:
из 1 выбрать названия и даты;
из 2 категории и цены
из 3 группу
и вывести в строку:
название1 дата1 категория1 цена1 группа1
название2 дата2 категория2 цена2 группа2
название3 дата3 категория3 цена3 группа3
...
ну кто вам мешает сделать 3-и запроса и в разные переменных их?!
LEOnidUKG, попробую такой вариант. Извините, все проблемы от незнания приемов. Не думал что это синтаксически приемлемо в данном случае
В цикле 3 запроса друг за другом, и там же в цикле их клейте, как надо.
Далее выводите как хотите. Что за критичность к 1 запросу?
<?php
$sql1 = "SELECT `price`, `date` FROM tbl1";
$sql2 = "SELECT `name` FROM tbl2";
$sql3 = "SELECT `foo` FROM tbl3";
$result1 = mysql_query($sql1);
$result2 = mysql_query($sql2);
$result3 = mysql_query($sql3);
while ($row1 = mysql_fetch_assoc($result1))
{
$row2 = mysql_fetch_assoc($result2);
$row3 = mysql_fetch_assoc($result3);
$strings[] = "{$row1['price']}, {$row1['date']}, {$row2['name']}, {$row3['foo']}";
}
foreach ($strings as $k=>$v)
{
echo $v, '<br>';
}
?>
ЗЫ. Вариант этот будет работать, если во всех запросах одинаковое количество возвращаемых строк.
while ($row1 = mysql_fetch_assoc($result1))
Пробовал такую реализацию - работает, но очень долго.
Говоря "Три независимых SELECT" я лишь хотел понять, как это сделать.
В реальной задаче значение одной таблицы ищется в значении другой (LIKE), прогоняя циклом, посредством JOIN.
В моем случае это в 6-7 раз быстрее, чем в связке цикла php
НО. Всего выборки 3. Именно первая - должна никак не зависеть от следующих за ней двух, который связаны JOIN.
Используя 2 JOIN - у меня получается 2 цикла, что печально отражается на результате вычисления SUM(цена)
Можно ли сделать три независимые выборки?
Например, UNION объединяет по однотипным таблицам. JOIN объединяет таблицы по указанным параметрам для выборки.
А могу ли я вернуть значения, никак не связанные друг с другом.
Можно. JOIN (LEFT JOIN) обеднять таблицы, а условия выборки и объединения вы можете задавать любые.
Пробовал такую реализацию - работает, но очень долго.
Говоря "Три независимых SELECT" я лишь хотел понять, как это сделать.
В реальной задаче значение одной таблицы ищется в значении другой (LIKE), прогоняя циклом, посредством JOIN.
В моем случае это в 6-7 раз быстрее, чем в связке цикла php
НО. Всего выборки 3. Именно первая - должна никак не зависеть от следующих за ней двух, который связаны JOIN.
Используя 2 JOIN - у меня получается 2 цикла, что печально отражается на результате вычисления SUM(цена)
Если в таблицах есть индексы и связка происходит по ключам то join работает очень быстро. Избавляйтесь от связки по like.