mysql - 查询未显示我需要的所有结果

标签 mysql

我有以下数据库表(人员):

+--------+--------+--------+--------+
|  Name  |Building|   Nr   |  Time  |
+--------+--------+--------+--------+
| Tim    | House  |   30   |  10:10 |
| Jill   | House  |   31   |  10:20 |
| Tim    | Flat   |   31   |  10:30 |
| NULL   | Tower  |  NULL  |  NULL  |
| Jack   | Hut    |   32   |  10:50 |
| Jane   | Cabin  |   35   |  10:60 |
| Susan  | Cabin  |   35   |  11:70 |
+--------+--------+--------+--------+ 

现在我想显示 Tim 拥有的所有建筑物(以及随之而来的数据)。我是这样做的:

SELECT * FROM `People` WHERE Name="Tim"

结果:

+--------+--------+--------+--------+
|  Name  |Building|   Nr   |  Time  |
+--------+--------+--------+--------+
| Tim    | House  |   30   |  10:10 |
| Tim    | Flat   |   31   |  10:30 |

到目前为止一切顺利。问题是,有更多的建筑物(塔楼、小屋和小屋)。我也想展示这些,但将数据(接受建筑类型)留空。

这个结果就是我需要的:

+--------+--------+--------+--------+
|  Name  |Building|   Nr   |  Time  |
+--------+--------+--------+--------+
| Tim    | House  |   30   |  10:10 |
| Tim    | Flat   |   31   |  10:30 |
| NULL   | Tower  |  NULL  |  NULL  |
| NULL   | Hut    |  NULL  |  NULL  |
| NULL   | Cabin  |  NULL  |  NULL  |
+--------+--------+--------+--------+

由于 Tower 已经是 NULL,我可以使用以下方法轻松提取它:

SELECT * FROM `People` WHERE Name="Tim" OR Name is NULL

结果:

+--------+--------+--------+--------+
|  Name  |Building|   Nr   |  Time  |
+--------+--------+--------+--------+
| Tim    | House  |   30   |  10:10 |
| Tim    | Flat   |   31   |  10:30 |
| NULL   | Tower  |  NULL  |  NULL  |
+--------+--------+--------+--------+

问题是,我仍然想念小屋和小木屋。这甚至可以通过查询来完成吗?还尝试了一些选项,如 GROUP BY 等,但这给出了混合数据作为返回。还使用 Google 进行了搜索,但没有成功。

希望有人能帮帮我!

附言。作为解决方法,我可以在数据库中添加:

 | NULL   | Hut    |  NULL  |  NULL  |
 | NULL   | Cabin  |  NULL  |  NULL  |

但是当您添加更多建筑物时,包含这张 table 将是一项艰巨的工作

最佳答案

有点像

select * from people where Name = 'Tim' 
union 
select 'NULL', Building, NULL, NULL from   people where Name != 'Tim';

可以为所欲为吗?

关于mysql - 查询未显示我需要的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866110/

相关文章:

mysql - 用于权限查找的数据库架构

php - SQL-更改现有行

php - 如何实现另一个表的table_info

php - 如何显示不存在或存在的结果

javascript - 使用php没有记录列时如何禁用按钮?

SQL 查询根据一个值排除项目

php - 从数据库中获取特定值

php - 我需要在mysql中删除之前选择吗? :

php - MySQL查询只完成了80%的查询,为什么它漏掉了20%呢?

mysql - 搜索 Concat 字符串不起作用