[英](SQL) Select and return all from more than 2 tables that have a common field where a specific value is present in all tables
[英]PostgreSQL - Select tables where specific column is not present
我在PostgreSQL數據庫中有一個包含約3000個表的模式,所有表都包含一行並包含以下列:
id
, area
, use
, geom
, site_id
但是,我發現至少有一個表site_id
列。 我想知道是否還有更多這些。我如何查詢沒有site_id
列的site_id
?
我的以下想法行不通。 有什么建議么?
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'schema_A' AND column_name NOT LIKE 'site_id'
GROUP BY table_name;
一種簡單的方法是計算side_id
在該表的列列表中出現多少次。 如果總和為零,則該表沒有site_id
:
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'schema_A'
GROUP BY table_name
HAVING SUM(CASE WHEN column_name LIKE 'site_id' THEN 1 ELSE 0 END) = 0;
我也不確定它是否是故意的,但是LIKE 'site_id'
這樣的效果與= 'site_id'
。 如果要檢查它是否包含site_id
,則更合適LIKE '%site_id%'
方法是LIKE '%site_id%'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.