Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySql]
Forum PHP.pl > Forum > Przedszkole
-gość-
Mam następujący układ tabel:

  1. CREATE TABLE `project` (
  2. `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `firm_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  4. `status` ENUM('active','notactive') NOT NULL DEFAULT 'notactive',
  5. `price` SMALLINT(5) UNSIGNED NULL DEFAULT NULL,
  6. `title` VARCHAR(50) NOT NULL,
  7. `url` VARCHAR(255) NOT NULL,
  8. `description` TEXT NULL,
  9. `start` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  10. `end` TIMESTAMP NULL DEFAULT NULL,
  11. PRIMARY KEY (`id`),
  12. INDEX `FK_project_firm` (`firm_id`),
  13. CONSTRAINT `FK_project_firm` FOREIGN KEY (`firm_id`) REFERENCES `firm` (`id`) ON UPDATE CASCADE ON DELETE SET NULL
  14. )
  15. COLLATE='utf8_general_ci'
  16. ENGINE=InnoDB
  17. ROW_FORMAT=DEFAULT
  18. AUTO_INCREMENT=39
  19.  
  20.  
  21. CREATE TABLE `image` (
  22. `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  23. `project_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  24. `position` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
  25. `date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  26. PRIMARY KEY (`id`),
  27. INDEX `FK__project` (`project_id`),
  28. INDEX `position` (`position`),
  29. CONSTRAINT `FK__project` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`) ON UPDATE CASCADE ON DELETE SET NULL
  30. )
  31. COLLATE='utf8_general_ci'
  32. ENGINE=InnoDB
  33. ROW_FORMAT=DEFAULT
  34. AUTO_INCREMENT=25


Każdy projekt może mieć przypisane do siebie wiele zdjęć, zdjęcia mają swoją pozycję. Pozycja zdjęcia może ulegać zmianie. Chciałbym wyciągnąć z bazy wszystkie wpisy, gdzie status projektu jest równy active, posiada zdjęcie i dodatkowo chcę id zdjęcia o najniższej pozycji.

Całe złączenie mam, tylko nie wiem jak wymusić pobranie nie losowego zdjęcia z projektu, a tego który ma najniższą pozycję
  1. SELECT
  2. project.id,project.title, project.url, project.description, firm.name, image.id, image.position
  3. FROM
  4. project
  5. LEFT JOIN firm ON project.firm_id = firm.id
  6. JOIN image ON image.project_id = project.id
  7. WHERE
  8. project.STATUS = 'active'
  9. ORDER BY
  10. 'end' DESC


jaslanin
http://bytes.com/topic/mysql/answers/81957...different-table

http://bytes.com/topic/mysql/answers/82152...der-join-column

z lekką modyfikacją powinno to spełnić Twoje oczekiwania o ile dobrze zrozumiałem o co chodzi.
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.