如何显示两个不相关的表中的数据?

时间:2016-11-17 16:53:58

标签: mysql

我在MYSQL数据库中有两个不相关的表。我想从两者中选择和显示数据。

例如,表格如下所示: separate tables

我想在我的网站上显示结果,按字母顺序排列,如下所示: results table

每张桌子的ID用于指猫或狗的照片。我对JOIN语句没有太多运气,UNION会在这种情况下工作吗?

任何帮助都非常感激。

3 个答案:

答案 0 :(得分:3)

SELECT Alpha, Name, CONVERT(Cat_Id, CHAR(50)) AS Cat_Id, '' AS Dog_Id
FROM Cat
UNION ALL
SELECT Alpha, Name, '' AS Cat_Id, CONVERT(Dog_Id, CHAR(50)) AS Dog_Id
FROM Dog
ORDER BY Alpha

一些评论:

严格地说,如果我们想要显示缺少猫或狗ID的空字符串,那么我们需要将Cat_IdDog_Id列转换为CHAR,因为所有值都在列必须是相同的类型。

没有必要将UNION查询包装为使用ORDER BY并按Alpha列排序,而是我们可以将ORDER BY添加到最后。

答案 1 :(得分:2)

SELECT Alpha,Name,Cat_ID,'' as Dog_ID
FROM Cat
UNION ALL
SELECT Alpha,Name,'' as Cat_ID,Dog_ID
FROM Dog

答案 2 :(得分:1)

我会使用字段将两个表合并到一个表中:

ID   Type   Name   Alpha

类型字段可以是cat或dog,然后其余部分将填充。这也允许您将来添加其他动物类型,而无需更改数据库。然后在显示数据时进行简单的选择。