Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение одного поля привыборке из 2=х таблиц 
:(
    Опции темы
igorold
Дата 5.9.2016, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... про остальные поля речи не было, о чем спросили, то вам разжевали. Задавайте новый вопрос.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Akina
Дата 5.9.2016, 15:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(Aver78 @  5.9.2016,  11:26 Найти цитируемый пост)
все неправильно возвращается

Всё возвращается правильно:
Код

mysql> create table t1 (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> create table t2 (id int, pt_id int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into t1 (id)
    -> select 1 union all
    -> select 2;
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into t2 (id, pt_id)
    -> select 1,1 union all
    -> select 2,1 union all
    -> select 3,1 union all
    -> select 4,2 union all
    -> select 5,3;
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from t1;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

mysql> select * from t2;
+------+-------+
| id   | pt_id |
+------+-------+
|    1 |     1 |
|    2 |     1 |
|    3 |     1 |
|    4 |     2 |
|    5 |     3 |
+------+-------+
5 rows in set (0.00 sec)

mysql> Select
    ->     t1.id, max(t2.id)
    -> from
    ->   t1
    -> left join t2
    ->   on t1.id=t2.pt_id
    -> GROUP BY t1.id;
+------+------------+
| id   | max(t2.id) |
+------+------------+
|    1 |          3 |
|    2 |          4 |
+------+------------+
2 rows in set (0.05 sec)

Цитата(Aver78 @  5.9.2016,  11:26 Найти цитируемый пост)
остальные данные(их, ясен пень, больше в таблице чем я указал для примера) не соответсвуют  t2.id

А кто виноват, что ты спрашиваешь не то, что тебе нужно?
Цитата(Aver78 @  5.9.2016,  11:26 Найти цитируемый пост)
если я не ошибаюсь, вначале происходит группировка, а только потом из получившихся данных агрегирование в виде max.

Огорчу...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
igorold
Дата 5.9.2016, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... какой-то глюк - вижу свои сообщения, которые с нового Винграда по 5 раз  smile 

Это сообщение отредактировал(а) igorold - 5.9.2016, 15:55


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Aver78
Дата 5.9.2016, 17:09 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Меня так умиляют такие ответы. То есть некомпетентный ответ, данный в виде ребуса,не решающий проблему, засчитан за решение проблемы, да еще и 'разжеван' ?

Добавлено через 6 минут и 49 секунд
Цитата(Akina @  5.9.2016,  15:29 Найти цитируемый пост)

Всё возвращается правильно:

Не поленился создал в точности таблицы как описал в примере. Действительно, возвращается правильно, значит косяк где то в более сложной структуре.

Добавлено через 8 минут и 11 секунд
Цитата(Akina @  5.9.2016,  15:29 Найти цитируемый пост)

А кто виноват, что ты спрашиваешь не то, что тебе нужно?

Пытался упростить вопрос до предела. 

Это сообщение отредактировал(а) Aver78 - 5.9.2016, 17:10
PM MAIL   Вверх
Akina
Дата 5.9.2016, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(Aver78 @  5.9.2016,  18:09 Найти цитируемый пост)
Пытался упростить вопрос до предела.

Перестарался имхо. Вангую, что тебе нужно не только максимальный ID из второй таблицы, но и другие поля из записи с этим ID.
И если для решения ТАКОЙ задачи на некоторых других серверах БД ты мог воспользоваться оконными функциями, то в случае MySQL тебе скорее всего придётся использовать нарисованный выше запрос как подзапрос, и по полученной паре (id, pt_id) из ещё одной копии второй таблицы получать всю соотв. запись. И при этом крайне желательно гарантировать, что эта пара - уникальна.
Впрочем, это не единственный способ - и не единственная возможная постановка задачи. Почитай FAQ: Выборка первой/последней записи в группах - авось найдёшь чего для себя интересного...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Aver78
Дата 5.9.2016, 17:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Цитата(Akina @  5.9.2016,  17:55 Найти цитируемый пост)
Вангую, что

Ну тут и ванговать нечего, понятно что сам id мне не упал.

Цитата(Akina @  5.9.2016,  17:55 Найти цитируемый пост)
то в случае MySQL тебе скорее всего придётся использовать нарисованный выше запрос как подзапрос

Таким образом я уже решал вопрос, мне не нравятся подзапросы по ряду причин.



Цитата(Akina @  5.9.2016,  17:55 Найти цитируемый пост)
FAQ: Выборка первой/последней записи в группах

Поищу.

Спасибо.

PM MAIL   Вверх
Akina
Дата 5.9.2016, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(Aver78 @  5.9.2016,  18:58 Найти цитируемый пост)
Таким образом я уже решал вопрос, мне не нравятся подзапросы по ряду причин.

ИМХО разумнее было сразу озвучить задачу, а не модель, а заодно и причины, по которым использование подзапросов не нравится. Уже бы давно вышли на финишную прямую...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
igorold
Дата 6.9.2016, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... а почему ты решил, что тебе должны давать готовый ответ?
Akina дал тебе направление, чтобы ты сам шевелил мозгами, причем полностью соответствующее твоему вопросу а когда мозги включишь, то умиляться не придется ...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
igorold
Дата 6.9.2016, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... а почему ты решил, что тебе должны давать готовый ответ?
Akina дал тебе направление, чтобы ты сам шевелил мозгами, причем полностью соответствующее твоему вопросу а когда мозги включишь, то умиляться не придется ...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
igorold
Дата 6.9.2016, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... а почему ты решил, что тебе должны давать готовый ответ?
Akina дал тебе направление, чтобы ты сам шевелил мозгами, причем полностью соответствующее твоему вопросу а когда мозги включишь, то умиляться не придется ...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
igorold
Дата 6.9.2016, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... а почему ты решил, что тебе должны давать готовый ответ?
Akina дал тебе направление, чтобы ты сам шевелил мозгами, причем полностью соответствующее твоему вопросу а когда мозги включишь, то умиляться не придется ...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
igorold
Дата 6.9.2016, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



... а почему ты решил, что тебе должны давать готовый ответ?
Akina дал тебе направление, чтобы ты сам шевелил мозгами, причем полностью соответствующее твоему вопросу а когда мозги включишь, то умиляться не придется ...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1651 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.