![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 3.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam 2 tabele.. jedna to tabela z towarami, druga z diagnostykami (przy czym w tej drugiej moze byc X rekordow dotyczacych jednego towaru)
moje pytanie to jak napisac zapytanie ktore by wyciagalo dane dotyczace towaru + ostatnia z diagnostyk dotyczaca tego towaru. Struktura bazy: [sql:1:bafb259a7c] CREATE TABLE goods ( id int(11) NOT NULL auto_increment, id_client int(11) NOT NULL default '0', goods_name varchar(128) NOT NULL default '', place varchar(16) default NULL, sn varchar(32) NOT NULL default '', nr_rachunku varchar(32) NOT NULL default '', destription blob NOT NULL, data_in date NOT NULL default '0000-00-00', worker int(11) NOT NULL default '0', PRIMARY KEY (id), UNIQUE KEY id (id) ) TYPE=MyISAM PACK_KEYS=0 CHECKSUM=1 AUTO_INCREMENT=31 ; CREATE TABLE diagnostyki ( id int(11) NOT NULL auto_increment, id_goods int(11) NOT NULL default '0', diagnoza text NOT NULL, worker int(11) NOT NULL default '0', data timestamp(14) NOT NULL, PRIMARY KEY (id), UNIQUE KEY id (id) ) TYPE=MyISAM AUTO_INCREMENT=94 ; [/sql:1:bafb259a7c] Ja wykombinowalem takie cos [sql:1:bafb259a7c] select goods.id,goods.goods_name,diagnostyki.diagnoza from goods,diagnostyki where diagnostyki.id_goods=goods.id ORDER by id; [/sql:1:bafb259a7c] jednak wykorzystuje on wszytkie diagnostyki dla danego towaru.. a mnie interesuje tylko ostatnia. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
Mozna to zrobic na dwa sposoby, pierwszy:
(na koncu dodajesz:) [sql:1:8ba9fe59a2] ORDER BY ID DESC LIMIT 0,1 [/sql:1:8ba9fe59a2] lub: [sql:1:8ba9fe59a2] SELECT MAX(goods.id),goods.goods_name,diagnostyki.diagnoza FROM goods,diagnostyki WHERE diagnostyki.id_goods=goods.id [/sql:1:8ba9fe59a2] to chyba tez zadziala.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 04:27 |