我在MYSQL数据库中有两个不相关的表。我想从两者中选择和显示数据。
每张桌子的ID用于指猫或狗的照片。我对JOIN语句没有太多运气,UNION会在这种情况下工作吗?
任何帮助都非常感激。
答案 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_Id
或Dog_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,然后其余部分将填充。这也允许您将来添加其他动物类型,而无需更改数据库。然后在显示数据时进行简单的选择。