我有一个多表查询,为每个表提取值“URL”(或别名“Taxon”)。它还为“MySiteID”和“MySection”创建值。这就是它的样子。
SELECT URL, 'GW' AS MySiteID, 'Topics' AS MySection FROM $DBWorld.gw_topics
UNION ALL
SELECT Taxon AS URL, 'GZ' AS MySiteID, 'Life' AS MySection FROM $DBLife.gz_life_kingclass
最后一行如下:
SELECT TopicURL AS URL, 'GS' AS MySiteID, 'Topics' AS MySection FROM $DBSymbols.gs_top_ref
) AS Combined
WHERE Combined.URL LIKE :MyURL
我想修改最后一行所以它说WHERE Combined.URL LIKE:MyURL AND G1 = 1
换句话说,除非值“URL”与页面的URL匹配且字段G1的值为1,否则不会显示页面。
问题是我的很多桌子都没有G1字段。我想在那些特定的表格中显示所有内容。
有没有办法修改我的查询,以便1)具有名为G1的字段的表中的行不显示,除非G1的值为1,2)来自没有命名字段的表的行G1还会显示?
答案 0 :(得分:3)
:
G1
列的表上,将其添加到select语句1 as G1
现在你有一个G1列,就像你想要的那样 - 来自表格的表格,你将从表格中获得价值。在你没有的表格上 - 它在所有行上都是1,因此它总是按你想要的那样选择。
之后,您可以添加到外部where语句AND G1 = 1