【发布时间】:2018-12-24 23:01:43
【问题描述】:
我正在开发一个使用 Postgres 作为数据库的应用程序。我现在需要查询多个表甚至多个数据库中包含的数据。
我仍在学习 PostgreSQL 查询的语法,所以希望这个问题的结构正确。
我想在 2 个表中查询包含在特定列中的文本字符串。 在下面的示例代码中,我尝试在 table_1 和 table_2 中查询水果名称“apple”或类似于“apple”的水果名称,例如“crabapple”。我希望其中一个字符串是松散的,另一个是明确的。
我可以单独查询每个表,但如何交叉引用两个表中的“fruit_name”以了解相似之处?
SELECT * FROM good_fruits where fruit_name ILIKE '%apple%'
SELECT * FROM bad_fruits where fruit_name ILIKE '%apple%'
我尝试使用下面的查询做类似的事情,但它不起作用。
应该如何构造查询以在名为 fruit_name 的单个列中查询两个表中的相似文本?
select
good_fruits.bar_code,
good_fruits.fruit_name,
bad_fruits.fruit_name
from good_fruits full outer join bad_fruits
on good_fruits.fruit_name=bad_fruits.fruit_name
WHERE good_fruits.fruit_name IS NOT NULL
and bad_fruits.fruit_name IS NOT NULL
and good_fruits.fruit_name ILIKE '%apple%'
and bad_fruits.fruit_name ILIKE '%apple%'
我计划使用带有 psycopg2 模块的 Python 脚本进行此查询。返回的结果应该是:
good_fruits.barcode, good_fruits.fruit_name, bad_fruits.fruit_name
【问题讨论】:
-
您的问题可以用多种方式解释。您可以添加一个包含两个表的可能内容和您想要的结果的示例吗? (结果可以是另一个“类似表格”的报告)。
-
我计划使用 psycopg2 从 python 进行此查询。此查询的结果将作为列表处理。上面列出的表名和列名都经过了清理,因此很难发布我的表的内容。
-
我目前正在使用python和psycopg2来执行各种数据库操作。
-
我用我目前打算如何使用这个查询来更新我的问题。
标签: python-3.x postgresql