左/内联接显示了16个条目,但我的数据库中只有4个



有人能告诉我为什么他显示16个条目,而我已经有4个了吗?

http://sqlfiddle.com/#!9/0d2300/7

我想显示domainid为1或其他值的所有结果。

我做错了什么?

我想包括我4次得到这条记录的所有3个表,因为在我的域中_检查表是4条记录

我想要:

id | domain_id | ssl_check | ssl_orgname 
1  |     1     |    1      |    SSL_TELEKOM
1  |     1     |    0      |    SSL_TELEKOM
1  |     1     |    1      |    SSL_MEDIA
1  |     1     |    1      |    SSL_MEDIA

如果您想要domain_check中的LAST行,并假设id标识最后一行,则向where子句添加一个条件

SELECT  domain.id,
domain_check.domain_id,
domain_check.ssl_check ,
ssl_info.domain_id,
ssl_info.ssl_organisation
FROM domain
INNER JOIN domain_check ON domain_check.domain_id = domain.id
INNER JOIN ssl_info ON domain_check.domain_id = ssl_info.domain_id
WHERE domain.id = 1 and
domain_check.id = (select max(id) from domain_check s1 where s1.domain_id = domain_check.domain_id);

+----+-----------+-----------+-----------+------------------+
| id | domain_id | ssl_check | domain_id | ssl_organisation |
+----+-----------+-----------+-----------+------------------+
|  1 |         1 |         1 |         1 | SSL_TELEKOM      |
|  1 |         1 |         1 |         1 | SSL_TELEKOM      |
|  1 |         1 |         1 |         1 | SSL_MEDIA        |
|  1 |         1 |         1 |         1 | SSL_MEDIA        |
+----+-----------+-----------+-----------+------------------+
4 rows in set (0.001 sec)

我认为这会帮助你

SELECT 
domain.id,
domain_check.domain_id,
domain_check.ssl_check,
ssl_info.domain_id,
ssl_info.ssl_organisation
FROM domain
LEFT JOIN domain_check ON domain_check.domain_id = domain.id
LEFT JOIN ssl_info ON domain_check.domain_id = ssl_info.domain_id
WHERE domain.id = 1 group by domain.id

这是屏幕截图https://prnt.sc/uljgzx

最新更新