Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: выборка из двух таблиц

Сообщения:  [1-4] 

 
 автор: oradev   (03.08.2007 в 17:11)   письмо автору
 
   для: Trianon   (03.08.2007 в 00:00)
 


Что вы на человека обрушились он может с FoxPro переехал

   
 
 автор: Trianon   (03.08.2007 в 00:00)   письмо автору
 
   для: Expier   (14.12.2006 в 16:45)
 

Если Вы указываете GROUP BY поле_группировки, то любые поля в SELECT, отличные от этого поля должны фигурировать только внутри агрегатов(MIN, MAX, COUNT, SUM etc...).
Если Вы не знаете что такое агрегатные функции - не применяйте GROUP BY вообще.
GROUP BY существует только и исключительно чтобы формировать группы данных для агрегатных функций.

   
 
 автор: servannin   (14.12.2006 в 18:31)   письмо автору
 
   для: Expier   (14.12.2006 в 16:45)
 

А если так:

SELECT personal.id_seaman , sea_service.num FROM personal, sea_service WHERE  
sea_service.del='0' AND personal.del='0' AND personal.id_rank = '1'  
AND sea_service.dwt >= '1' AND personal.id_seaman = sea_service.id_seaman GROUP BY personal.id_seaman; 


Как я думаю, ты выбираешь записи из 2х таблиц НЕ с одинаковым id_seaman, а все подряд.
Я добавил AND personal.id_seaman = sea_service.id_seaman

   
 
 автор: Expier   (14.12.2006 в 16:45)   письмо автору
 
 

Здравствуйте!
Делаю такой запрос:


SELECT personal.id_seaman , sea_service.num FROM personal, sea_service WHERE 
sea_service.del='0' AND personal.del='0' AND personal.id_rank = '1' 
AND sea_service.dwt >= '1' GROUP BY personal.id_seaman;


Немного объясню: существует 2 таблицы, часть данных берется из одной, остальные - из другой.
Поле id_seaman - существует как в таблице personal так и в sea_service.

результат выглядит примерно так

id_seama | num
18 | 1
23 | 1
34 | 1
56 | 1
78 | 1
......
и т.д

Проблема в том, что выдает строки, некоторые из которых не соответствуют запросу.
Т.е., например, строка, в которой id_seaman = 23 а num = 1, не существует: в таблице sea_service вообще нет строки с id_seaman = 23;
Поле num - это вообще ключ. Т.е. о дублировании его речи быть не может.

Подскажите, пожалуйста, в чем может быть дело.

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования