mysql - 使用完全连接但不使用左连接时出现问题。为什么?
问题描述
当我left join
在不同的数据库上使用 a 时,它可以工作,但当我使用inner join
. 为什么 ?
SELECT tkblue_tklabel_dev_data.EmailContent.*, tkblue_tklabel_dev_archdata.EmailTracking.*
FROM tkblue_tklabel_dev_data.EmailContent
FULL JOIN tkblue_tklabel_dev_archdata.EmailTracking ON tkblue_tklabel_dev_archdata.EmailTracking.idEmailTracking = tkblue_tklabel_dev_data.EmailContent.idEmailTracking
未知表 'tkblue_tklabel_dev_data.EmailContent'
但是使用的时候
SELECT tkblue_tklabel_dev_data.EmailContent.*, tkblue_tklabel_dev_archdata.EmailTracking.*
FROM tkblue_tklabel_dev_data.EmailContent
LEFT JOIN tkblue_tklabel_dev_archdata.EmailTracking ON tkblue_tklabel_dev_archdata.EmailTracking.idEmailTracking =
tkblue_tklabel_dev_data.EmailContent.idEmailTracking
我没有这个错误信息,但我只能得到左表的结果。或者,我希望所有结果都像完全加入一样。
解决方案
mysql 中不存在完全连接,但您可以在 UNION 中使用左连接和右连接产生相同的结果
SELECT tkblue_tklabel_dev_data.EmailContent.*
, tkblue_tklabel_dev_archdata.EmailTracking.*
FROM tkblue_tklabel_dev_data.EmailContent
LEFT JOIN tkblue_tklabel_dev_archdata.EmailTracking
ON tkblue_tklabel_dev_archdata.EmailTracking.idEmailTracking = tkblue_tklabel_dev_data.EmailContent.idEmailTracking
UNION
SELECT tkblue_tklabel_dev_data.EmailContent.*
, tkblue_tklabel_dev_archdata.EmailTracking.*
FROM tkblue_tklabel_dev_data.EmailContent
RIGHT JOIN tkblue_tklabel_dev_archdata.EmailTracking
ON tkblue_tklabel_dev_archdata.EmailTracking.idEmailTracking = tkblue_tklabel_dev_data.EmailContent.idEmailTracking
推荐阅读
- reactjs - 轴和刻度值之间的间距的胜利图表问题
- php - laravel csrf TokenMisMatchException, ajaxSetup 已设置
- c - 使用模数运算符时函数返回奇怪的值
- mysql - 在centos(Linux)中从mysql中删除数据库
- php - Ajax 下拉列表不起作用
- php - 如何从表css中的2个字段json获取数据
- rsync - Rsync:如果校验和相同,则保持目标文件不变
- java - Android:通知不生成默认声音
- arraylist - Flutter:语音到文本
- android - 什么是 android.enableD8=false 的替代品,因为它已被弃用