首页 > 解决方案 > SQL中如何对一张表的一行使用多张表

问题描述

因此,对于我正在处理的项目,我有三个不同的表,每个表都保存单个对象的值。另一个表用于保存三个表中所有选择的值(不是全部!)。我不想为每个不同的表创建一个新列(如下图所示),我想要一个指定要使用哪个表的行,以便它可以使用它。所以基本上主表包含其他三个表中的一些相同值。

我做了一个模拟例子来帮助解释这个问题。我知道这有点蹩脚,但我希望你对发生的事情有所了解。

在此处输入图像描述

如果使用 MySQL 无法做到这一点,请告诉我任何更好的建议。谢谢

标签: mysqlsql

解决方案


根据图片,这些表没有任何指示绑定它们的位置。这将导致 Animal 表变得完全混乱JOIN。但是,如果您只想拥有来自特定列的所有行的长列表(我认为 OP 实际上想要)使用UNION

Select Breed from Cats
UNION ALL
Select Species from Reptiles
UNION ALL
Select Type from Birds

这应该得到列表可能是你想要的。


推荐阅读