Şu anda kullanıcılar çeşitli Paramaters kullanarak ve disk belleği sonuçları bir dizi dönen belgelerin bir veritabanı üzerinden aramak için izin için bir uygulama geliştiriyorum. Benim her zamanki geliştirme platformu değildir PHP / MySQL, onu bina, ama onun büyük olmuştur şimdiye kadar duyuyorum.
Ben yaşıyorum sorun sonuçlarının tam kümesi döndürmek için ben SOL tamamen benim performansı yok her masada, JOIN kullanmak zorunda olmasıdır. Veritabanı geliştirdi kişi ben kullanıyorum sorgu yüzden kullanmak zorunda thats ne, doğru sonuçları dönecektir söyledi. Sorgu Ben hiçbir şekilde bir SQL Guru tarafından duyuyorum ve bu konuda biraz yardım kullanabilirsiniz altındadır.
Ben alt sorguları sorgu bölmek için daha iyi olabileceğini düşünerek olmuştur? Aşağıda benim geçerli sorgu:
SELECT d.title, d.deposition_id, d.folio_start, d.folio_end, pl.place_id, p.surname, p.forename, p.person_type_id, pt.person_type_desc, p.age, d.manuscript_number, dt.day, dt.month, dt.year, plc.county_id, c.county_desc
FROM deposition d
LEFT JOIN person AS p ON p.deposition_id = d.deposition_id
LEFT JOIN person_type AS pt ON p.person_type_id = pt.person_type_id
LEFT JOIN place_link AS pl ON pl.deposition_id = d.deposition_id
LEFT JOIN date AS dt ON dt.deposition_id = d.deposition_id
LEFT JOIN place AS plc ON pl.place_id = plc.place_id
LEFT JOIN county AS c ON plc.county_id = c.county_id
WHERE 1 AND d.manuscript_number = '840'
GROUP BY d.deposition_id ORDER BY d.folio_start ASC
LIMIT 0, 20
Herhangi bir yardım veya rehberlik büyük mutluluk duyacağız!
Biriktirme Tablo:
CREATE TABLE IF NOT EXISTS `deposition` (
`deposition_id` varchar(11) NOT NULL default '',
`manuscript_number` int(10) NOT NULL default '0',
`folio_start` varchar(4) NOT NULL default '0',
`folio_end` varchar(4) default '0',
`page` int(4) default NULL,
`deposition_type_id` int(10) NOT NULL default '0',
`comments` varchar(255) default '',
`title` varchar(255) default NULL,
PRIMARY KEY (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Tarih Tablo
CREATE TABLE IF NOT EXISTS `date` (
`deposition_id` varchar(11) NOT NULL default '',
`day` int(2) default NULL,
`month` int(2) default NULL,
`year` int(4) default NULL,
PRIMARY KEY (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Person_Type
CREATE TABLE IF NOT EXISTS `person_type` (
`person_type_id` int(10) NOT NULL auto_increment,
`person_type_desc` varchar(255) NOT NULL default '',
PRIMARY KEY (`person_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=59 ;