【发布时间】:2016-11-13 07:01:31
【问题描述】:
我有一张这样的桌子:
+--------+------+-----+
|Provider|Type |Date |
+--------+------+-----+
|1 |Meal |Date1|
+--------+------+-----+
|1 |ACCOM |Date2|
+--------+------+-----+
|2 |Meal |Date3|
+--------+------+-----+
|2 |Meal |Date4|
+--------+------+-----+
|3 |ACCOM |Date5|
+--------+------+-----+
|3 |ACCOM |Date6|
+--------+------+-----+
提供者可以在约会时提供住宿或膳食。 我可以选择所有只提供膳食或只提供住宿的供应商吗?
所以我期待:
+--------+------+-----+
|2 |Meal |Date3|
+--------+------+-----+
|2 |Meal |Date4|
+--------+------+-----+
|3 |ACCOM |Date5|
+--------+------+-----+
|3 |ACCOM |Date6|
+--------+------+-----+
因为供应商 2 只提供膳食,供应商 3 只提供住宿。
更新:
原来的问题是:
列出所有只提供住宿或膳食的提供者(不 两个都)。
注意:不要消除结果中的重复项。
所以我认为我应该一步获得重复,而不是再次加入表格。
我想出了以下查询:
SELECT PROVIDERS.PROVID AS ID
FROM PROVIDERS
INNER JOIN ISP ON ISP.PROVID = PROVIDERS.PROVID
WHERE ISP.SVCTYPE = 'ACCOM'
UNION ALL
SELECT PROVIDERS.PROVID AS ID
FROM PROVIDERS
INNER JOIN ISP ON ISP.PROVID = PROVIDERS.PROVID
WHERE ISP.SVCTYPE = 'MEAL'
问题是这个查询有重复的代码,唯一的区别是“ACCOM”或“MEAL”,所以这个查询可以再次改进吗?
【问题讨论】:
-
@GordonLinoff 抱歉,已删除。
-
你是在偶然创建Airbnb的副本还是增强版?