我有 3 个表,如下所示:
村庄
Village_ID Village_Name 446261 परसठ्ठी 446262 बम्हनी 446263 लाफिनखुर्द 446264 सोरम 446265 सिधीं
Anganbadi_Master
Anganbadi_ID Anganbadi_Name Village_ID
1307 चिंगरौद 446260
1308 चिगरौद-2 446260
1309 बम्हनी-1 446262
1310 बम्हनी-2 446262
1311 बम्हनी-3 446262
1312 लाफिनखुर्द-1 446263
1313 लाफिनखुर्द-2 446263
安甘巴迪
Anganbadi_ID Food Month Year
1179 हाँ 5 2013
1309 हाँ 1 2013
1309 नहीं 1 2014
1309 हाँ 2 2013
1310 हाँ 1 2013
1310 हाँ 2 2013
1310 हाँ 3 2013
1311 नहीं 3 2013
2032 हाँ 3 2013
现在我想在两个不同年份的基础上检索食物列两次,其中不同年份的同一个月份必须只出现一次,如下所示:
Anganbadi_ID Month food(2013) food(2014)
1309 1 हाँ नहीं
1309 2 हाँ NULL
1310 1 हाँ NULL
1310 2 हाँ NULL
1310 3 हाँ NULL
1311 3 नहीं NULL
但是,当我尝试这段代码时
SELECT DISTINCT Anganbadi.Anganbadi_ID
, Anganbadi.Month
, Anganbadi.Food AS food2013
, NULL AS Food2014
FROM Anganbadi
INNER JOIN Anganbadi_Master ON Anganbadi.Anganbadi_ID = Anganbadi_Master.Anganbadi_ID
INNER JOIN Village ON Anganbadi_Master.Village_ID = Village.Village_ID
WHERE (Anganbadi.Year = 2013)
AND (Anganbadi_Master.Village_ID = 446262)
UNION ALL
SELECT Anganbadi_1.Anganbadi_ID
, Anganbadi_1.Month
, NULL AS food2013
, Anganbadi_1.Food AS Food2014
FROM Anganbadi AS Anganbadi_1
INNER JOIN Anganbadi_Master AS Anganbadi_Master_1 ON Anganbadi_1.Anganbadi_ID =
Anganbadi_Master_1.Anganbadi_ID
INNER JOIN Village AS Village_1 ON Anganbadi_Master_1.Village_ID =
Village_1.Village_ID
WHERE (Anganbadi_1.Year = 2014)
AND (Anganbadi_Master_1.Village_ID = 446262)
它显示以下结果:
Anganbadi_ID 月食(2013) 食(2014) 第1309章 1个 第1309章 2天 第1310章 1个 第1310章 2天 第1310章 3点 第1311章 3天 第1309章 1空
这里 Anganbadi_ID 1309 显示同一月份 (1 ) 年份 (2013 和 2014) 的两个不同行