Я работаю над приложением, которое использует Postgres для базы данных.Я нахожусь в точке, где мне нужно запросить данные, содержащиеся в нескольких таблицах и даже в нескольких базах данных.
Я все еще изучаю синтаксис запросов PostgreSQL, так что, надеюсь, этот вопрос структурирован правильно.
Я хотел бы запросить 2 таблицы для текстовой строки, содержащейся в определенном столбце.В приведенном ниже примере кода я пытаюсь запросить у table_1 и table_2 название фрукта «яблоко» или название фрукта, похожее на «яблоко», например «crabapple».Я хотел бы, чтобы одна строка была свободной, а другая - явной.
Я могу запросить каждую таблицу в отдельности, но как мне сделать перекрестную ссылку на «фруктовое имя» в обеих таблицах для сходства?
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%'
Я планирую сделать этот запрос, используя скрипт Python с модулем psycopg2.Возвращенные результаты должны быть:
good_fruits.barcode, good_fruits.fruit_name, bad_fruits.fruit_name