- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Можно ли сделать три независимые выборки?
Например, 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.