Russian Qt Forum

Программирование => Базы данных => Тема начата: IUnknown от Июнь 15, 2005, 01:38



Название: Один запрос для нескольких таблиц
Отправлено: IUnknown от Июнь 15, 2005, 01:38
После обсуждения вопроса про постраничный вывод из базы данных я понял что нужно иметь одну огромную таблицу. Моя проблема заключается в том что мне необходимо из нескольких таблиц найти записи по некоторому ключу и я делал так - по очереди извлекал из каждой таблицы нужные записи и сразу же их выводил. Как можно организовать запрос что бы обработать несколько небольших таблиц как одну большую? Сервер MySQL и запрос типа SELECT * FROM 'data' WHERE path LIKE '%{$text}%'


Название: Один запрос для нескольких таблиц
Отправлено: Admin от Июнь 15, 2005, 08:39
есть в sql такая команда как as
позволяет в select использовать данные из нескольких таблиц
например

Цитировать
$sql = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, t.topic_replies, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
      FROM prog_topics AS t, prog_posts AS p, prog_users AS u
      WHERE t.topic_status <> 2
         AND p.post_id = t.topic_last_post_id
         AND p.poster_id = u.user_id
      ORDER BY p.post_id DESC
      LIMIT 10";

запросо из 3 таблиц одновременно
это то или нет?


Название: Один запрос для нескольких таблиц
Отправлено: IUnknown от Июнь 15, 2005, 16:25
Пишу SELECT * FROM test1, test2, test3 WHERE test1.path LIKE '%.jpg%' OR test2.path LIKE '%.jpg%' OR test3.path LIKE '%.jpg%'
а оно мне какой-то бред выдает! Мне нужно из этих 3-х таблиц извлекти все файлы с расширением jpg.


Название: Один запрос для нескольких таблиц
Отправлено: Admin от Июнь 15, 2005, 16:48
SELECT * FROM test1 WHERE test1.path LIKE '%.jpg%'

а такой срабатывает?


Название: Один запрос для нескольких таблиц
Отправлено: IUnknown от Июнь 15, 2005, 17:26
Да такой срабатывает - выдает то что нужно (один столбец результатов). Только напишу для более чем одной таблицы - выдает результат в несколько столбцов и там выводятся все записи из всех таблиц в какой-то непонятной последовательности.