Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie do wyszkuwania ogłoszen z promowaniami...
Forum PHP.pl > Forum > Bazy danych > MySQL
Ardo
Proszę o pomoc mam taka sytuacje sa dwie tabele: A (OGŁOSZENIA) I B (PROMOWANIA w danym ogłoszeniu)

obie maja element wspolny a. obId = b. oglId

chce napisac takie zapytanie, że jak wybiorę zakres daty w tabeli B. (czyli wszytkie promowania w danym okresie)
zostaną wyszukane wszystkie ogłoszenia w tabeli A (OGLOSZENIA ZAWIERAJĄCE TAKIE PROMOWANIA)
Mam nadzieje ze udało mi się jasno napisać

ponizej przedstawiam te tabele. czy moze ktoś mi tak na szybko wypisac taki przykład który by tak działał

tabela A)
  1. CREATE TABLE IF NOT EXISTS `object` (
  2. `obId` int(11) NOT NULL AUTO_INCREMENT,
  3. `obName` varchar(255) NOT NULL DEFAULT '',
  4. `obTypeId` int(11) NOT NULL DEFAULT '0',
  5. `obRegion` int(11) NOT NULL DEFAULT '0',
  6. `obStateId` int(11) NOT NULL DEFAULT '0',
  7. `obCity` varchar(255) NOT NULL DEFAULT '',
  8. `obDate` datetime NOT NULL DEFAULT '2010-01-01 01:00:00',
  9. `obDateEnd` datetime NOT NULL DEFAULT '2011-01-01 01:00:00',
  10. `obRoom` varchar(255) NOT NULL DEFAULT '',
  11. `obTeren` varchar(255) NOT NULL DEFAULT '',
  12. `obNearby` varchar(255) NOT NULL DEFAULT '',
  13. `obDroga` int(11) NOT NULL DEFAULT '0',
  14. `obTxt` text NOT NULL,
  15. `obCennik` varchar(200) NOT NULL,
  16. `obOkolica` varchar(200) NOT NULL,
  17. `obGoogle` varchar(100) NOT NULL,
  18. `obLat` varchar(50) NOT NULL,
  19. `obLng` varchar(50) NOT NULL,
  20. `obNumRoom` int(11) NOT NULL DEFAULT '0',
  21. `obNumBed` int(11) NOT NULL DEFAULT '0',
  22. `obPriceOn` int(11) NOT NULL DEFAULT '0',
  23. `obPriceOff` int(11) NOT NULL DEFAULT '0',
  24. `obRabat` int(11) NOT NULL DEFAULT '0',
  25. `obUserId` int(11) NOT NULL DEFAULT '0',
  26. `obTel` varchar(20) NOT NULL DEFAULT '',
  27. `obEmail` varchar(255) NOT NULL DEFAULT '',
  28. `obWww` varchar(255) NOT NULL DEFAULT '',
  29. `obConfirm` BINARY(1) DEFAULT NULL,
  30. `obAdress` varchar(255) NOT NULL DEFAULT '',
  31. `obPromo` int(1) NOT NULL DEFAULT '0',
  32. `obPromoDateEnd` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  33. `obWyroz` int(1) NOT NULL DEFAULT '0',
  34. `obWyrozDateEnd` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  35. `obLastMinute` int(1) NOT NULL DEFAULT '0',
  36. `obLastMinuteDateEnd` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  37. `obDostepnosc` varchar(50) NOT NULL,
  38. `iloscApart` int(5) NOT NULL,
  39. `pokoj1ilosc` int(5) NOT NULL,
  40. `pokoj2ilosc` int(5) NOT NULL,
  41. `pokoj3ilosc` int(5) NOT NULL,
  42. `clicked` int(11) NOT NULL,
  43. `views` int(11) NOT NULL DEFAULT '0',
  44. `gg` varchar(11) NOT NULL,
  45. `promocja` int(11) NOT NULL,
  46. PRIMARY KEY (`obId`)
  47. )


tablea cool.gif

  1. CREATE TABLE IF NOT EXISTS `promocja` (
  2. `promId` int(11) NOT NULL AUTO_INCREMENT,
  3. `oglId` int(11) NOT NULL,
  4. `promOpis` varchar(255) NOT NULL,
  5. `obDate` date NOT NULL DEFAULT '0000-00-00',
  6. `obDateEnd` date NOT NULL DEFAULT '0000-00-00',
  7. `cenaN` int(25) NOT NULL,
  8. `cenaP` int(25) NOT NULL,
  9. PRIMARY KEY (`promId`)
  10. )
erix
Zwykłego JOINa nie możesz napisać?
Ardo
dzięki ale może mi w tym pomożesz jak połączyć :

  1. $sql = "SELECT * FROM object
  2. INNER JOIN promocja
  3. ON object.obId = promocja.oglId
  4. WHERE promocja.obDateEnd BETWEEN '".$_SESSION['data_po2']."' AND '".$_SESSION['data_ko2']."'
  5. GROUP BY promocja.oglId";


z tym zapytaniem:

  1. $sql = "SELECT a.*, b.*, c.*
  2. FROM object AS a, type AS b, state AS c
  3. WHERE a.obTypeId = b.typeId AND a.obStateId = c.stateId AND a.obConfirm = '1' AND a.obDateEnd > NOW()";
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.