Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonalne? GROUP BY
Forum PHP.pl > Forum > Bazy danych > MySQL
starcodes
Witam,
mam pewien problem z grupowaniem rekordów.

Na początek struktura tabeli:

  1. CREATE TABLE tabela(
  2. id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. ident int,
  4. code char(48),
  5. name varchar(128))


Dane w tabeli:

  1. INSERT INTO tabela VALUES(NULL, '1', NULL, 'nazwa 1')
  2. INSERT INTO tabela VALUES(NULL, '1', NULL, 'nazwa 2')
  3. INSERT INTO tabela VALUES(NULL, '1', 'asCode', 'nazwa 3')
  4. INSERT INTO tabela VALUES(NULL, NULL, 'asCode', 'nazwa 4')
  5. INSERT INTO tabela VALUES(NULL, '2', NULL, 'nazwa 5')


Opis problemu:
Chcę pobrać rekordy w ten sposób aby zostały one pogrupowane według pola 'ident' i 'code', ale w taki sposób, aby jako jeden rekord zwrócone zostały rekordy 1,2,3 i 4, ponieważ rekord 1,2 mają taką samą wartość 'ident', rekord 2 i 3 mają taką samą wartość pola 'code', mają się również połączyć z rekordami 1 i 2, ponieważ mają jeden wspólny element (rekord 3 zawiera taki sam 'ident', co rekordy 1 i 2).

Da radę jakoś to zrobić za pomocą mySQL'a?

Wymodziłem coś takiego:

  1. SELECT `id`, `code` `name`, COUNT(DISTINCT `ident`) FROM `tabela` GROUP BY `code`

nie działa to tak jak powinno...

Najlepiej jakby dawało się to zrobić poprzez
  1. GROUP BY ident,code

ale niestety nie da sad.gif

Ma ktoś jakiś pomysł jak coś takiego zrobić?
Z góry dzięki za pomoc...
spryciula
czy ty chcesz te rekordy policzyć czy co z nimi zrobić, bo zamotałeś trochę
starcodes
Chcę wyciągnąć te dane z bazy danych...
spryciula
tak się nie da, jak ty to napisałeś
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.