Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połączenie dwóch zapytań w jedno.
Forum PHP.pl > Forum > Bazy danych > MySQL
Ardo
jak połączyć te dwa zapytania w jedno:

  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()";
bpskiba
http://pl.wikipedia.org/wiki/Operator_Union

Ale zanim zaczniesz czytać ten manual usuń gwiazdki z tych zapytań i wymień nazwy pobieranych pól
Ardo
raczej UNION nie da rady, to by musialo tak wygladac ale to nie spełnia UNION bo tma pisze oba zapytania musza gnerowac taka sama ilosc kolumn, wiec to nie SPEŁNIA ZAŁOŻENIA.

więc UNION nie pasuje chyba że masz jakiś sposób na to ja jakoś tej zasady nie moge obejsc.


  1. SELECT obId, obName, obStateId, obPriceOn, obConfirm, obDateEnd, obTypeId, obCity, obRoom, obTeren, obNearby
  2. FROM object
  3. INNER JOIN promocja ON object.obId = promocja.oglId
  4. WHERE promocja.obDateEnd
  5. BETWEEN '2012-08-01'
  6. AND '2012-12-30'
  7. GROUP BY promocja.oglId
  8.  
  9. UNION
  10.  
  11. SELECT a.obId, a.obName, a.obStateId, a.obPriceOn, a.obConfirm, a.obDateEnd, a.obTypeId, a.obCity, a.obRoom, a.obTeren, a.obNearby, b.typeId,
  12. typeName, typeNameen, typeNamedo,
  13. c.stateId, c.stateName
  14. FROM object AS a, type AS b, state AS c
  15. WHERE a.obTypeId = b.typeId AND a.obStateId = c.stateId AND a.obConfirm = '1' AND a.obDateEnd > NOW()
  16.  
mmmmmmm
  1. SELECT obId, obName, obStateId, obPriceOn, obConfirm, obDateEnd, obTypeId, obCity, obRoom, obTeren, obNearby, NULL typeId, NULL typeName, NULL typeNameen, NULL typeNamedo, NULL stateId, NULL stateName
  2. FROM object
  3. INNER JOIN promocja ON object.obId = promocja.oglId
  4. WHERE promocja.obDateEnd
  5. BETWEEN '2012-08-01'
  6. AND '2012-12-30'
  7.  
  8. UNION ALL
  9.  
  10. SELECT a.obId, a.obName, a.obStateId, a.obPriceOn, a.obConfirm, a.obDateEnd, a.obTypeId, a.obCity, a.obRoom, a.obTeren, a.obNearby, b.typeId, typeName, typeNameen, typeNamedo, c.stateId, c.stateName
  11. FROM object AS a, type AS b, state AS c
  12. WHERE a.obTypeId = b.typeId AND a.obStateId = c.stateId AND a.obConfirm = '1' AND a.obDateEnd > NOW()
Ardo
dziki za pomoc , juz dziala
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.