我有以下的數據庫表(簡體)內聯接返回正確MAX日期,但沒有等領域,在同一行
statistics_meter
id | mpan_number
1 | 12345678
2 | 87654321
statistics_contract
id | contract_end_date | meter_id | supplier
1 | 2014-01-10 | 1 | British gas
2 | 2013-12-01 | 1 | Southern Electric
3 | 2014-03-01 | 2 | EON
我的查詢是爲了獲取最新的合同結束日期爲給定的儀表和回報它與供應商一起。我已經寫了查詢並返回了正確的合同結束日期,但是供應商正在從先前的合同返回 - 因此返回來自兩行的數據,而不僅僅是一行。
例如我得到
2014-01-10|Southern Electric
..不正確。
我的查詢:
SELECT
statistics_meter.mpan_number AS mpanNumber,
MAX(statistics_contract.contract_end_date) AS contractEndDate,
statistics_contract.supplier AS supplierName
FROM statistics_contract
INNER JOIN statistics_meter
ON statistics_meter.id=statistics_contract.meter_id
GROUP BY statistics_contract.meter_id
預先感謝幫助
那就是當你不明白數據庫是如何工作的會發生什麼。閱讀文檔(http://dev.mysql.com/doc/refman/5.7/en/group-by-extensions.html)中關於MySQL'group by'擴展的信息。不在「group by」中的列的值是任意的。 –
對子查詢過濾器使用JOIN。 – Mihai
我欣賞鏈接@GordonLinoff,但你不同意,如果大家都知道里面的文檔將不需要stackoverflow? – anewvision