Я использую базу данных, которая, на мой взгляд, не была настроена самым интуитивно понятным способом. У меня есть две таблицы, к которой я пытаюсь присоединиться. Таблица магазинов содержит информацию о магазине и имеет поле store_id, которое хранится как 7-значное число в формате varchar. В таблице транзакций есть поле transaction_id, которое настроено как hstore и хранится как «package_id» => «10000417». Я пытаюсь присоединиться к двум таблицам в этих полях.Изменение типов данных и использование LIKE в LEFT OUTER JOIN
Я попытался указать поле transaction_id как varchar, в то же время попытался использовать подзапрос в заявлении объединения, чтобы добавить часть package_id => в поле store_id. пытались использовать LIKE в JOIN заявление, чтобы добавить символы Тем не менее проблемы Вот код, который я пытался при использовании LIKE:..
SELECT t.amount
,t.quantity_sold
,t.unit
,cast(t.transaction_details as varchar) as join_field
,s.product_name
,s.product_category
,s.metrc_id
FROM transactions t
LEFT JOIN store_info s ON t.transaction_details = s.store_id
WHERE t.transaction_details LIKE '%store_id%'
Я попробовал несколько других вариантов я надеюсь, кто-то может дать подсказку. для меня в лучшем направлении, чтобы попытаться связать эти две таблицы.
Заранее благодарен,
EDIT
Я использую SQL Server, а не Postgresql. С тех пор я сделал больше исследований по типу данных hstore и немного понял его. У меня все еще есть проблемы с присоединением к двум таблицам. Мне удалось создать новый столбец только с идентификационным номером, используя следующий запрос.
SELECT *, transaction_details->'package_id' as ID
FROM transactions
Я попытался соединим затем вызвать этот столбец не дало никаких результатов, поэтому я попытался следующее:
SELECT *
FROM transactions t
LEFT JOIN store_info s ON t.transaction_details->'package_id' = s.store_id
Я также попытался бросить в целое или VARCHAR, используя следующие
SELECT *
FROM transactions t
LEFT JOIN store_info s ON cast(t.transaction_details->'package_id'
as varchar) = s.store_id
Извините за то, что вы такой noob. Спасибо за помощь.