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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как составить запрос для опредиления дубликатов
 
 автор: LO   (27.06.2006 в 18:24)   письмо автору
 
 

У меня есть две таблицы для опредиления груза:

CREATE TABLE 'cargo' (
  'id' int(10) unsigned NOT NULL auto_increment,
  'company_id' smallint(5) unsigned NOT NULL default '0',
   ...
  'from_id' smallint(5) unsigned NOT NULL default '0',
  'to_id' smallint(5) unsigned NOT NULL default '0',
  'arch_time' datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  ('id'),


и

CREATE TABLE 'company' (
  'id' smallint(5) unsigned NOT NULL auto_increment,
  'name' varchar(70) collate cp1251_ukrainian_ci default NULL,
  ...
  PRIMARY KEY  ('id'),


вторая таблица содержит данные о компании, а первая - о грузе (from_id to_id - id мест откуда и куда был доставлен груз)и связанна с первой по полю company_id.
Мне нужно найти такие грузы, которые были бы доставлены одной и той же компанией и места доставки одинаковы, т.е. поля company_id , from_id, to_id были бы общие

   
 
 автор: Trianon   (27.06.2006 в 18:49)   письмо автору
 
   для: LO   (27.06.2006 в 18:24)
 

SELECT from_id, to_id, company_id, COUNT(id)
FROM cargo
GROUP BY from_id, to_id, company_id
HAVING COUNT(id) > 1

   
 
 автор: LO   (27.06.2006 в 19:24)   письмо автору
 
   для: Trianon   (27.06.2006 в 18:49)
 

Я так делала, но мне хотелось бы чтоб выводились именно все id
так вообще можно сделать?

   
 
 автор: Trianon   (27.06.2006 в 19:25)   письмо автору
 
   для: LO   (27.06.2006 в 19:24)
 

все, а не какие?

   
 
 автор: Trianon   (27.06.2006 в 19:32)   письмо автору
 
   для: Trianon   (27.06.2006 в 19:25)
 

Как-то так:


SELECT id, from_id, to_id, company_id 
FROM cargo 
  JOIN 
  (SELECT from_id as fd , to_id as td, company_id as cd , COUNT(id) as cnt
    FROM cargo
    GROUP BY fd, td, cd 
    HAVING COUNT(id) > 1 ) as t2
  ON from_id = fd AND to_id = td AND company_id = cd

   
 
 автор: LO   (27.06.2006 в 19:33)   письмо автору
 
   для: Trianon   (27.06.2006 в 19:25)
 

При данном запросе группируются данные по общему признаку и выдается только одна запись на общие товары, например у меня такие данные
id------company_id--------from_id---------to_id
356----3-----------------------7-------------------1
3213--3------------------------7-------------------1
qwe--4------------------------7--------------------1

мне запрос покажет одну строчку(если в начало еще выводить id)
3213--------3---------------7--------------1---------------2
а я бы хотела получить оба id чтоб выдал 356 и 3213

   
 
 автор: Trianon   (27.06.2006 в 19:35)   письмо автору
 
   для: LO   (27.06.2006 в 19:33)
 

в начало id выводить нельзя. Мало ли что MySql это позволяет.

   
 
 автор: LO   (27.06.2006 в 19:35)   письмо автору
 
   для: LO   (27.06.2006 в 19:33)
 

Спасибо огромное
Вы просто гений!!!

   
Rambler's Top100
вверх

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