这个SELECT
声明工作正常,但我希望能够重复它以进一步完善搜索。
SELECT id1
FROM table1
WHERE id2 IN (SELECT id
FROM table2
WHERE name="country"
AND value="Mexico")
例如,如果我想在墨西哥找到只有“海滩”的地点,那就是:
name="features" AND value="Beaches"
...我将如何使用SELECT
声明进一步削减结果?
答案 0 :(得分:1)
可能最好的方法是执行新查询并添加额外的过滤。可以在客户端应用程序中“手动”过滤,但在大多数情况下这可能效率较低。因此,运行具有更多限制的新查询:
SELECT id1 FROM table1 WHERE id2 IN
(SELECT id FROM table2 WHERE
name="country" AND
value="Mexico" AND
name2 = "features" AND
value2 = "Beaches" )
请注意,我将两个新列名更改为不同的名称(原始查询结果将不包含给定原始名称的其他值)。如果通过“优化”,您想要添加,那么查询可能应该是:
SELECT id1 FROM table1 WHERE id2 IN
(SELECT id FROM table2 WHERE
( name="country" AND
value="Mexico" ) OR
( name = "features" AND
value = "Beaches" ))
答案 1 :(得分:0)
Vecta,您需要通过添加其他IN来扩展您的查询:
SELECT id1
FROM table1
WHERE id2 IN (SELECT id
FROM table2
WHERE name="country"
AND value="Mexico")
AND id2 IN (SELECT id
FROM table2
WHERE name="featues"
AND value="Beach")
但请注意,这会导致性能下降很快。 : - )