可以通过编号找到表名吗? 我有多个表扩展另一个表,当我在“超级”表中找到id时,我想知道哪个子表是该id。 有索引的方法来做到这一点或另一种方式? 谢谢db:通过编号查找表名
0
A
回答
0
你举的例子是真的不清楚,但......
文章(的东西,ID) 消息(ID引用的文章(ID),morestuff) 课程(ID引用的文章(ID),evenmorestuff)
因此,您使用文章中的id链接到新闻或课程,并希望避免从新闻和课程中选择联合?
1)当前的查询不包含此信息
2)有几个方法可以做到这一点:
一)你改变你的数据模型的东西更通用的(文章,r_article_news,新闻,r_article_courses,课程),并确定在此基础上
b)您添加的物品表)您第一次查询略有信息(添加一个名为列类型,在这里您将进入任何新闻或课程)
ç较重确定自动
SELECT a.*,b.type
FROM article a
INNER JOIN
(SELECT id,'news' AS type
FROM news
UNION
SELECT id,'courses' AS type
FROM courses) b
ON a.id=b.id;
0
标签说mysql
和postgresql
。由于不清楚你想要哪一个,下面是mysql
的解决方案。
显而易见,只有当您的表具有FOREIGN KEYS集时,才可以执行此操作。举例来说,如果你有一个数据库dogs_and_peaople
两个表:
dogs
------
id
owner_id -- foreign key on people.id
name
people
------
id
name
surname
如果你想了解,这表和字段被dogs.owner_id
reperenced,你可以看看在information_schema
数据库,就像这样:
SELECT
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
CONSTRAINT_SCHEMA = 'dogs_and_peaople' -- database name
AND TABLE_NAME = 'dogs'
AND COLUMN_NAME = 'owner_id'
相关问题
- 1. Android - 通过编号查找项目
- 2. SmartGWT通过编号查找元素
- 3. 查找通过JNDI名称
- 4. 使用SOQL查询通过编号查找项目
- 5. 查找类名,然后删除编号
- 6. 通过这里找到地方编号
- 7. 通过编号找到关系
- 8. C通过%x编程编号表示
- 9. YUI通过编号获取类名
- 10. 通过与查找表
- 11. mysql的:通过查找表
- 12. 通过HtmlProvider查找表
- 13. angularjs - 通过编号查找元素内的元素
- 14. VBA Selenium通过文本查找行号
- 15. 从列表中查找编号
- 16. 通过邮编和对象名称查找位置
- 17. 通过查找
- 18. Facebook - 通过名称查找用户
- 19. 通过PID查找进程名称
- 20. Firebase通过其名称查找用户
- 21. 如何通过LIKE表达式在SQL中查找方括号?
- 22. 查找表名
- 23. 如何通过名称查找Facebook组ID通过
- 24. 查找索引编号
- 25. 查找顺序编号
- 26. 在SQL表中查找名称以及通过PHP回显
- 27. 当通过域名连接时,mongo db查询不起作用
- 28. 通过查找特定值通过对象列表查找对象
- 29. 查找has_many:通过
- 30. 如何通过编号
除非你是动态创建的表,我没有看到在选择任何一种指数,只是为了确定一个表的时候,你可以很容易地通过它的名称来识别表。 否则,如果我没有正确理解你的问题,你可能看起来像这样: SELECT relid,relname FROM pg_stat_all_tables where schemaname ='YourSchema'; – ertx
来解释我可以写一个例子:我有一个叫做文章的表格和两个叫做新闻和课程的表格。文章包含新闻和课程的常见信息和id。文章ID 1引用新闻或课程与ID 1.避免做一个选择在两个表上找到ID 1,我想知道表名直接在该表上查询。 – Pietro