当前位置: 首页 > 面试题库 >

在没有公用键的情况下联接多个表

冯通
2023-03-14
问题内容

嗨,我目前有3个表格,如下所示。表之间没有通用键

表1-> linkage_Table

ID Item         Material       Color
1  keypouch     *              yellow
2  wallet       plastic        *
3  card-holder  leather        gold

表2->材料表

ID Name          
1  plastic
2  wool
3  leather

表格3-> Color_Table

ID Color
1  Yellow
2  green
3  orange

我希望得到以下结果集

Item         Material    Color

keypouch     plastic     yellow
keypouch     wool        yellow
keypouch     leather     yellow
wallet       plastic     yellow
wallet       plastic     green
wallet       plastic     orange
card-holder  leather     gold

我想编写一条SQL语句将表连接在一起。

链接表中带有*表示我们将从材料或颜色表中检索所有值。

我现在确实需要此解决方案。一直试图解决这个问题超过5个小时。在此先感谢您的帮助。


问题答案:

一种可能的方法:

SELECT l.Item, m.name, c.Color
      FROM linkage_Table AS l
INNER JOIN Material_Table AS m
        ON l.Material = '*'
           OR l.Material = m.name
INNER JOIN Color_Table AS c
        ON l.Color = '*'
           OR l.Color = c.Color

SQL小提琴

说明:必须建立查询,以便'*'在相应字段中给定“材料”和“颜色”表时,可以完全(交叉连接)它们,也可以通过这些字段的相等性进行连接。这正是我们使用'ON l.someField = '*' OR l.someField = joined.someField'子句所得到的。



 类似资料:
  • 这两个dataframe没有任何公共列。两个数据流中的行数和列数也不同。我尝试插入一个新的虚拟列,以增加row_index值,如下val dfr=df1.withcolumn(“row_index”,monotonically_increasing_id())所示。 但由于我使用的是Spark2,因此不支持monotonically_increasing_id方法。有没有办法把两个datafram

  • 我正在开发一款嵌入式设备,它可以通过WiFi与iPad(仅限WiFi)进行通信。但是,这些设备未连接到internet。它们只是连接到一个特定的端口,该端口不断地转发某些信息。iPad连接到接入点,从DHCP接收IP地址,现在可以到达所需的位置 我看到的是频繁的断开连接,或连接中断。 我的怀疑是iPad无法连接到导致它重新扫描WiFi网络或以其他方式暂时中断连接。 有没有办法禁用这种行为,或者确保

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 问题内容: 我有一个带有一些视图的布局,其中一个是EditText。布局很容易放在一页上,但当软键盘退出时,布局不会滚动。这是我的布局的回顾: 在清单中,我声明了该属性: 有谁知道为什么它不起作用以及如何确保它起作用? 提前致谢! 问题答案: 好的,显然不应该将ScrollView 设置为。我将其设置为并将其设置为页面底部的按钮。 不要问我为什么,但这可以解决问题。

  • 我正在尝试使用selenium创建自动化,以安装chrome扩展。当我尝试在amazon虚拟机上运行这个jar时,我遇到了一个问题,因为当我尝试用robot类按enter键时,它不起作用,因为我没有连接物理键盘。我不能在selenium中使用sendkeys,因为来自google的pop不在同一页面,selenium无法识别它。有什么解决办法吗?

  • 我试图让一个Maven版本为一个Java项目工作,但有一点很有趣,我正在构建的机器没有也不可能访问Maven库。 我在尝试和运行的任何生命周期过程中遇到的错误是 无法对项目xxxxxx执行goal org . Apache . maven . plugins:maven-clean-Plugin:2.5:clean(default-clean):对goal org . Apache . maven