我有多个具有这种结构的表:
+----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| nick | char(25) | NO | PRI | NULL | |
| id | int(11) | NO | | NULL | |
| cooldown | datetime | NO | | NULL | |
+----------+----------+------+-----+---------+-------+
我想从id
获得所有这些表格中的所有nick
字段。这些表格(我们称之为table1
,table2
,table3
)可能为空,也可能不为空。在一个查询中执行此操作的最佳方法是什么?
我想要的输出如下:
+-------+
| id |
+-------+
| 15679 |
| 72620 |
+-------+
答案 0 :(得分:1)
您需要UNION查询:
SELECT id FROM table1 WHERE nick='nick'
UNION
SELECT id FROM table2 WHERE nick='nick'
UNION
SELECT id FROM table3 WHERE nick='nick'
UNION
只会返回唯一的行,如果您希望查询返回重复项,则可以使用UNION ALL
代替。
答案 1 :(得分:0)
Select Id from table1 where nick=nick
UNION
Select Id from table2 where nick=nick
UNION
...
UNION
...