Mysql 即使don';不存在于另一张桌子上
我有两个表,希望联接,但若其他表中不存在行,则不会显示结果Mysql 即使don';不存在于另一张桌子上,mysql,sql,Mysql,Sql,我有两个表,希望联接,但若其他表中不存在行,则不会显示结果 +-------------------+ +-------------------+ | TABLE 1| | | Table 2 | +-------------------+ +-------------------+ |deviceID| xxx | |deviceID| yyy | |-------------------| |--
+-------------------+ +-------------------+
| TABLE 1| | | Table 2 |
+-------------------+ +-------------------+
|deviceID| xxx | |deviceID| yyy |
|-------------------| |-------------------|
| 1 | Service 1 | | 1 | Asset 1 |
| 2 | Service 2 | | 2 | Asset 2 |
| 3 | Service 3 | | |
+-------------------+ +-------------------+
SQL:
显示的结果是deviceID:1、2和3未显示,我想显示它,即使它在表2中不存在
我尝试了左连接和右连接,但不起作用您是否尝试过简单的
左连接
SELECT L.xxx, A.yyy
FROM TABLE1 L LEFT JOIN
TABLE2 A
ON L.deviceID = A.deviceID;
这应该可以满足您的需要。如本例所示,左连接工作正常。给你 所以这似乎不是问题所在。您是否提供了一个dbfoddle示例,但它不起作用 模式(MySQL v8.0)
查询#1
SELECT
t1.deviceID
,t1.xxx
,t2.yyy
FROM
Table1 t1 LEFT JOIN
Table2 t2 ON t1.deviceID = t2.deviceID;
查询#2
SELECT
t1.xxx
,t2.yyy
FROM
Table1 t1 LEFT JOIN
Table2 t2 ON t1.deviceID = t2.deviceID;
您是否尝试过
内部联接
SELECT L.xxx, A.yyy
FROM TABLE1 L INNER JOIN
TABLE2 A
ON L.deviceID = A.deviceID;
这应该是可行的,因为内部联接
采用两个表中的公共值;
输出
我在我的问题中写下了这个,我已经试过了,但并没有起作用,因为deviceID 3不存在于表中2@Nick . . . 非常感谢。
| deviceID | xxx | yyy |
| -------- | --------- | ------- |
| 1 | Service 1 | Asset 1 |
| 2 | Service 2 | Asset 2 |
| 3 | Service 3 | |
SELECT
t1.xxx
,t2.yyy
FROM
Table1 t1 LEFT JOIN
Table2 t2 ON t1.deviceID = t2.deviceID;
| xxx | yyy |
| --------- | ------- |
| Service 1 | Asset 1 |
| Service 2 | Asset 2 |
| Service 3 | |
SELECT L.xxx, A.yyy
FROM TABLE1 L INNER JOIN
TABLE2 A
ON L.deviceID = A.deviceID;
| DeviceID | xxx | yyy |
|:--------:|:---------:|:--------:|
| 1 | Service 1 | Assest 1 |
| 2 | Service 2 | Assest 2 |