Autor Zpráva
Apacuka
Profil
Zdravím.
Jaký SELECT použít pro výběr unikatnich (zpravy.odkoho, zpravy.komu) podle vybraného obchodu?
// obchody.id = zpravy.obchod_id


// příklad
// když vyberu obchody.id=1, tak aby byl výsledek 4,10,11,12,35,50 (na pořadí nezáleží)

+-----        +-------------------------------------
|obchody      |        zpravy
+---+----     +---+--------+------+----------
|id |         |id | odkoho | komu | obchod_id
+---+         +---+--------+------+-----------
| 1 |         |1  | 50     | 10   | 1
| 2 |         |2  | 12     | 35   | 1
| 3 |         |3  | 5      | 15   | 2
              |4  | 11     | 4    | 1


A jak potom udělat, aby se pro každé to vybrané číslo udělal INSERT?

INSERT INTO table (komu,odkoho) VALUES ('4','1')
INSERT INTO table (komu,odkoho) VALUES ('10','1')
INSERT INTO table (komu,odkoho) VALUES ('11','1')
atd.
Kajman_
Profil *
Nějak jsem se v tom popisu ztratil, ale asi něco na způsob
INSERT INTO `table` (komu,odkoho)
select komu, obchod_id from zpravy where obchod_id=1
Apacuka
Profil
Umím udělat SELECT pouze pro každý sloupec zvlášť, ale jak to spojit do jednoho.

$result1 = mysql_query("SELECT odkoho,obchod_id FROM zpravy m LEFT JOIN obchody s ON m.obchod_id = s.id 
WHERE s.id='1' GROUP BY m.odkoho") or die(mysql_error()); 
// vysledek 11,12,50
$result2 = mysql_query("SELECT komu,obchod_id FROM zpravy m LEFT JOIN obchody s ON m.obchod_id = s.id 
WHERE s.id='1' GROUP BY m.komu") or die(mysql_error()); 
// vysledek 4,10,35
nightfish
Profil
Apacuka:
oba dva ty dotazy v [#3] jsou naprosto shodné, v obou je ten JOIN zbytečný...

SELECT odkoho FROM zpravy WHERE obchod_id = 1 UNION SELECT komu FROM zpravy WHERE obchod_id = 1
Apacuka
Profil
Mockrát děkuju.

$result = mysql_query("SELECT odkoho as napis FROM zpravy WHERE obchod_id = '1' 
                 UNION SELECT komu FROM zpravy WHERE obchod_id = '1'") or die(mysql_error()); 

$pole = array();
while($row = mysql_fetch_assoc($result))
{
  $pole[] = $row['napis'];
} 

foreach ($pole as $napis)
{
  echo "prikaz pro: ".$napis."<br>";
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: