我正在尝试加入两个 select 语句的输出,因为每个 select 语句将返回 0 或 1 个输出,如果一个返回 0 输出,INNER JOIN 将不返回任何内容。我想知道如何完成外部连接。我已经看到了 INNER JOIN 的解决方案,并且已经让那个解决方案工作了,但是当我将它更改为 OUTER JOIN 时,我收到了这个错误:
错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以value
在第 3 行的 'OUTER JOIN (SELECT FROM server_setting WHERE server_id=1 AND server_sett'附近使用正确的语法
这是查询:
SELECT * FROM
(SELECT `value` AS url FROM server_setting WHERE server_id=1 AND server_setting_type_id=(SELECT min(id) FROM server_setting_type WHERE type='url')) AS t1
FULL OUTER JOIN
(SELECT `value` AS port FROM server_setting WHERE server_id=1 AND server_setting_type_id=(SELECT min(id) FROM server_setting_type WHERE type='port')) AS t2
;
样本输入:
server_setting 表:
|---------|----------------------|-----|
|server_id|server_setting_type_id|value|
|---------|----------------------|-----|
|1 |1 |http |
|1 |2 |22 |
|---------|----------------------|-----|
server_setting_type 表:
|--|----|
|id|type|
|--|----|
|1 |url |
|2 |port|
|--|----|
结果:
|----|----|
|url |port|
|----|----|
|http|22 |
|----|----|
谢谢