Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 - Fatal编程技术网

Mysql只选择其他表中存在的记录

Mysql只选择其他表中存在的记录,mysql,Mysql,我有两张桌子: LOGGINGTYPES id name LOGFILES id type_id (linked to loggintypes.id) client_ip time logcontent 我对MYSQL很陌生,但我正在寻找一个查询,如果有日志链接,它只从loggingtypes中选择* 使用“SELECT*FROM loggingtypes ORDER BY name”可以获取所有信息,如何让它只选择有日志链接的行 是 最好的方法是什么 SELECT lt.* FROM LO

我有两张桌子:

LOGGINGTYPES
id
name

LOGFILES
id
type_id (linked to loggintypes.id)
client_ip
time
logcontent
我对MYSQL很陌生,但我正在寻找一个查询,如果有日志链接,它只从loggingtypes中选择*

使用“SELECT*FROM loggingtypes ORDER BY name”可以获取所有信息,如何让它只选择有日志链接的行

最好的方法是什么

SELECT lt.*
FROM LOGGINGTYPES lt
INNER JOIN LOFGILES lf
ON lt.ID = lf.type_id

内部连接将限制您的LOGGINGTYPES列表仅限于日志文件中有匹配项的记录

据我所知,您的查询是正确的

一种替代方法是使用联接:

select distinct 
    lt.id, lt.name
from 
    logging_types as lt
    inner join logging as l on lt.id = l.type_id

内部连接是更快还是更安全?为什么要在我的查询中使用此选项?@Mbrouwer88这是一个替代选项,仅此而已。您可能希望练习使用
内部连接
用法,因为将来可能需要使用
左连接
右连接
。对于两个表之间的简单关系,
where
internal join
基本上是等价的,但是对于更复杂的关系,我认为
internal join
是一种更干净的方法来解决这个问题。从现在起将使用内部联接而不是WHERE。
select distinct 
    lt.id, lt.name
from 
    logging_types as lt
    inner join logging as l on lt.id = l.type_id