Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод данных из двух таблиц / 4 сообщений из 4, страница 1 из 1
10.06.2014, 03:21:49
    #38665828
B1ackGh0st_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод данных из двух таблиц
Люди добрые помогите, дайте правильный способ сделать выборку.

(SELECT p.text FROM post WHERE user_id='8' ORDER BY date DESC)
UNION
(SELECT p.text FROM post p
JOIN subscribe s ON s.subscribe_user_id = p.user_id WHERE p.user_id='8' ORDER BY date DESC)
ORDER BY date DESC

Такой способ не работает из-за неравного числа колонок
каким ПРАВИЛЬНЫМ способом можно вывести данные
...
Рейтинг: 0 / 0
10.06.2014, 03:41:55
    #38665831
B1ackGh0st_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод данных из двух таблиц
Мне надо вывести из таблицы post все записи которые относятся к данному юзеру и все записи тех юзеров кого он читает. Кого он читает нужно смотреть в таблице subscribe

subscribe_user_id => Пользователь
subscribe_id => Кого читает

--
-- Структура таблицы `post`
--

CREATE TABLE IF NOT EXISTS `post` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`user_id` int(255) NOT NULL,
`text` varchar(255) NOT NULL,
`del` int(1) NOT NULL DEFAULT '0',
`date` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `post`
--

INSERT INTO `post` (`id`, `user_id`, `text`, `del`, `date`) VALUES
(1, 8, 'текст', 0, '1402351324'),
(2, 3, 'текст', 0, '1402351324'),
(3, 7, 'текст', 0, '1402351324'),
(4, 8, 'текст', 0, '1402351324'),
(5, 3, 'текст', 0, '1402351324'),
(6, 7, 'текст', 0, '1402351324'),
(7, 8, 'текст', 0, '1402351324');

--
-- Структура таблицы `subscribe`
--

CREATE TABLE IF NOT EXISTS `subscribe` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`subscribe_id` int(255) NOT NULL,
`subscribe_user_id` int(255) NOT NULL,
`subscribe_date_add` varchar(255) NOT NULL,
`subscribe_del` int(1) NOT NULL DEFAULT '0',
`subscribe_del_date` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

--
-- Дамп данных таблицы `subscribe`
--

INSERT INTO `subscribe` (`id`, `subscribe_id`, `subscribe_user_id`, `subscribe_date_add`, `subscribe_del`, `subscribe_del_date`) VALUES
(1, 2, 1, '1402351203', 0, NULL),
(2, 8, 2, '1402351216', 0, NULL),
(3, 4, 3, '1402351224', 0, NULL),
(4, 5, 4, '1402351236', 0, NULL),
(5, 8, 5, '1402351244', 0, NULL),
(6, 7, 6, '1402351254', 0, NULL),
(7, 8, 1, '1402351261', 0, NULL),
(8, 9, 8, '1402351270', 0, NULL),
(9, 1, 8, '1402381129', 0, NULL);

-- --------------------------------------------------------
...
Рейтинг: 0 / 0
10.06.2014, 08:48:47
    #38665874
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод данных из двух таблиц
B1ackGh0st_Такой способ не работает из-за неравного числа колонок
Неправда, в обоих частных запросах выбирается по одному полю.
А неправильной является внешняя сортировка по несуществующему в наборе полю.
Кстати, сортировка в частных запросах лишняя - она всё равно игнорируется, поскольку там нет лимита.
...
Рейтинг: 0 / 0
10.06.2014, 09:39:24
    #38665916
B1ackGh0st_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод данных из двух таблиц
Akina,

Спасибо. Не заметил ошибку
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод данных из двух таблиц / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]