Php 如何使用内部联接?

Php 如何使用内部联接?,php,mysql,join,inner-join,Php,Mysql,Join,Inner Join,我是PHP新手。我有一个sql查询。我使用内部连接。我面临一些问题。如果有任何单个空白字段为空,则不显示其他字段的任何数据 这是我的问题 $sql= "SELECT r.client_id,c.id,t.id,a.id,o.id,c.name as cname,t.title as ttitle,a.title as atitle,o.title as otitle, l.title as ltitle FROM og_ratings r INNER JOIN og_companies c O

我是PHP新手。我有一个sql查询。我使用内部连接。我面临一些问题。如果有任何单个空白字段为空,则不显示其他字段的任何数据

这是我的问题

$sql= "SELECT r.client_id,c.id,t.id,a.id,o.id,c.name as cname,t.title as ttitle,a.title as atitle,o.title as otitle, l.title as ltitle
FROM og_ratings r 
INNER JOIN og_companies c
ON r.client_id = c.id
INNER JOIN og_rating_types t
ON r.rating_type_id = t.id
INNER JOIN og_actions a
ON r.pacra_action = a.id
INNER JOIN og_outlooks o
ON r.pacra_outlook = o.id
INNER JOIN og_lterms l
ON r.pacra_lterm = l.id
INNER JOIN og_sterms s
ON r.pacra_sterm = s.id
WHERE c.id= '$id2'
ORDER BY r.id DESC
LIMIT 1 ";

因此,您有
左连接
(或者在某些特殊情况下有
右连接
LEFT JOIN
只从指定的第一个表中选择all,并使用
NULL
填充其他表中的字段(未找到条目)


只需将所有
内部连接
替换为
左连接

内部连接
替换为
左连接

$sql= "SELECT r.client_id,c.id,t.id,a.id,o.id,c.name as cname,t.title as ttitle,a.title as atitle,o.title as otitle, l.title as ltitle
FROM og_ratings r 
LEFT JOIN og_companies c
ON r.client_id = c.id
LEFT JOIN og_rating_types t
ON r.rating_type_id = t.id
LEFT JOIN og_actions a
ON r.pacra_action = a.id
LEFT JOIN og_outlooks o
ON r.pacra_outlook = o.id
LEFT JOIN og_lterms l
ON r.pacra_lterm = l.id
LEFT JOIN og_sterms s
ON r.pacra_sterm = s.id
WHERE c.id= '$id2'
ORDER BY r.id DESC
LIMIT 1 ";

将所有的
内部联接
替换为
左联接
,并将
og_公司
放在列表的第一位,这样您将保留所有公司。当然。。内部联接将仅获取每个表上具有类似列值的数据。在您的情况下,使用左连接或右连接