連接數據我有3個sqlite的表:SQLite的語法 - 從3個表
表inspections
,其中insp_id
是primary key
id | name | deleted
------------------------------
I1 | Inspection A | (null)
I2 | Inspection B | (null)
I3 | Inspection C | 1
表equip_insp
,其中equip_id, insp_id
是primary keys
equip_id | insp_id | period | period_type
--------------------------------------------
E1 | I1 | 1 | Y
E1 | I2 | 6 | M
E2 | I1 | 1 | M
表equip_certif
,其中id
是primary key
id | equip_id | insp_id | date | certif_no | result | info
-------------------------------------------------------------------
C4 | E1 | I1 | 2015-02-01 | A-300 | Good | (null)
C3 | E1 | I1 | 2015-02-01 | A-200 | Good | (null)
C2 | E1 | I1 | 2015-01-10 | A-100 | Good | (null)
C1 | E1 | I2 | 2015-01-06 | B-100 | Good | (null)
所有ID是事實上的數值,我用一些字母只是爲了方便他們在連接之間。
所以,我想用Sqlite語法幫助我,對於項目E1,顯示所有檢查定義(升序),然後如果存在,顯示週期性,然後顯示最新的證書日期(如果有2在同日的證書,獲得最新的ID),數量和結果,是不是信息
結果應該是這樣的:
id | name | period | period_type | certif_no | date | result
--------------------------------------------------------------------------
I1 | Inspection A | 1 | Y | A-300 | 2015-02-01 | Good
I2 | Inspection B | 6 | M | B-100 | 2015-01-06 | Good
我已經嘗試這個,但我不敢肯定那是對的。
SELECT inspections.id, inspections.name, equip_insp.period, equip_insp.period_type, equip_certif.certif_no, equip_certif.date AS certif_date, equip_certif.result
FROM inspections
LEFT JOIN equip_insp ON (inspections.id = equip_insp.insp_id AND equip_insp.equip_id = 'E1')
LEFT JOIN equip_certif ON (inspections.id = equip_certif.insp_id AND equip_certif.info IS NULL)
WHERE inspections.deleted IS NULL
GROUP BY equip_insp.insp_id
ORDER BY inspections.id, date(equip_certif.date) DESC, equip_certif.id DESC
你有一個關於如何解決2個證書具有相同日期的情況下的想法,所以我可以得到一個與最新的ID介紹? – REALSOFO