首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >练习不好?在以后的连接表中使用内部连接id

练习不好?在以后的连接表中使用内部连接id
EN

Database Administration用户
提问于 2022-09-24 03:01:16
回答 2查看 65关注 0票数 0

我有两个或更多的表,它们经常用于数据库视图中的联接,但它们没有任何共同的字段,因此我正在考虑添加相同的生成id键,以便插入到由3个不同表组成的"join_id“字段中,以便稍后加入。关于这类话题,我在网上搜索过,但没有看到太多的讨论,所以我很谨慎,不管这是不是好的实践。继续进行这种数据库操作安全吗?

EDIT1

以下是我想要完成的更多细节

假想

DEPT-A有自己的表,他们将用flds1、flds2、flds3、innerjoin_id创建一个新的行/记录

flds4,flds5,flds6,innerjoin_id都有他们自己的桌子。

部门-B需要看到部门-A flds1,flds2,flds3,并能够编辑各自的flds4,flds5,flds6.

flds1,flds2,flds3 (可编辑)

DEPT-B web输入表单将看到flds6 1-readonly,flds6 2-readonly,flds6 3-readonly,flds6 4-editable,flds6 5-editable,flds6 6-editable。

例子:

A进入“苹果”、“香蕉”、“樱桃”

B部需要看到苹果、香蕉、樱桃,然后在fld4 4-6中输入“apple香蕉”、"bananacherry“、"cherryapple”。

DEPT-B依赖于DEPT-A模组1-3

EN

回答 2

Database Administration用户

发布于 2022-09-24 03:43:47

专门为MySQL..。

当您连接两个表时,可以指定这些表是如何关联的。

  • (常见的情况) ... FROM cities JOIN countries ON countries.id = cities.country_id --这有很多:1关系(一个国家的许多城市)。
  • (罕见) ... FROM a CROSS INNER JOIN b (没有任何与这两个表相关的内容) --这为您提供了ab行的所有组合。在MySQL中,关键字CROSS是可选的。
  • (有时) ... FROM a LEFT JOIN b ON ... WHERE b.id IS NULL --它查找相应的b行缺失的a行。

ONWHERE对于INNER JOINCROSS JOIN具有相同的语义。但它可以帮助读者使用ON来显示关系(无论是否存在FOREIGN KEY),并使用WHERE进行‘过滤’。

任何数量的表都可以是JOINed,在SELECT中、在VIEW中、在UPDATE中或在DELETE中。

VIEWSELECT的语法糖。基本上,所有适用于其中一种的规则都适用于另一种规则。

您的一个关键问题是:没有要求列在“公共”中以JOIN形式出现在它们上。你能猜出这种奇怪的连接会产生什么结果吗:

代码语言:javascript
复制
SELECT us_states.state_name 
    FROM us_states
    JOIN countries ON us_states.state_name =
                      countries.country_name;

提示:一个答案以'G‘开头。

票数 1
EN

Database Administration用户

发布于 2022-09-24 18:29:18

不能使用JOIN执行选择性权限。

使用VIEWs允许某些用户(基于登录到MySQL)编写vs只读和未见表列(S)。

对特定表的特定列上的用户使用GRANTs

你也许可以用补助金来处理只读。但是,要允许用户只查看某些列,则可能需要单独的视图。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/317333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档