Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从多个表中选择不同的值_Mysql_Sql_Database - Fatal编程技术网

Mysql 如何从多个表中选择不同的值

Mysql 如何从多个表中选择不同的值,mysql,sql,database,Mysql,Sql,Database,我需要从3个表中获得不同的值 执行此代码时: select DISTINCT(city) from a,b,c 我得到一个错误,说我的列“城市”是不明确的 我也试过这样做: select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c 使用此代码,我从表中没有收到任何信息 让我举一个我正在尝试做的例子: TABLE A TABLE B TABLE C id | city

我需要从3个表中获得不同的值

执行此代码时:

select DISTINCT(city) from a,b,c 
我得到一个错误,说我的列“城市”是不明确的

我也试过这样做:

select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c
使用此代码,我从表中没有收到任何信息

让我举一个我正在尝试做的例子:

TABLE A               TABLE B                TABLE C
id  |  city           id  |  city            id  | city
1   |  Krakow         1   |  Paris           1   | Paris
2   |  Paris          2   |  London          2   | Krakow
3   |  Paris          3   |  Oslo
4   |  Rome
我需要得到这样的结果

RESULTS
 city
 ----
 Krakow
 Paris
 Rome
 London
 Oslo
城市的顺序对我来说并不重要,我只需要拥有所有的城市,每个城市应该只有一个代表

有什么想法吗?我想在
JOIN
中使用
id的
,但是没有连接,所以我无法使用。

关键字将返回结果列表上的
唯一的
记录。当指定
ALL
()时,将在结果集中保留重复项,而OP不希望这样做

SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC
结果

╔════════╗
║  CITY  ║
╠════════╣
║ Krakow ║
║ Paris  ║
║ Rome   ║
║ London ║
║ Oslo   ║
╚════════╝

正是我需要的。这个联盟是什么样的?你能解释一下吗?我不知道为什么这个答案被否决了。呵呵,据我所知,我理解这个问题<代码>:)让我们听听投票人的观点。@user123\u 456查看我的更新答案。这里还有演示好的,如果你不介意的话,我只有一个问题。如果我在每个表中都有一个附加列,例如
spa\u column
我需要将where子句放在哪里,以便它影响所有表。将整个查询包装在子查询中,这也会产生正确的答案,但为什么需要添加
DISTINCT
关键字和
UNION
将始终返回唯一的记录,除非指定了
ALL
?你说得很对。“UNION”默认为“UNION DISTINCT”(而不是“UNION ALL”)
SELECT city FROM A
UNION DISTINCT
SELECT city FROM B
UNION DISTINCT
SELECT city FROM C