如何使用 join 编写 MySQL 查询,并在删除一个表中的记录时仍显示部分信息


how to write mysql query with join and still display partial info if a record from one table is deleted?

我有一个联接查询,显示来自 2 个表的信息,但如果从其中一个表中删除记录,则不会显示联接记录。 我仍然想显示联接的记录,但显示第一个表中的数据,缺少第二个表的信息。

这是我正在使用的查询。

$result = mysql_query("SELECT user_groups.*, pricing_groups.* FROM user_groups inner join pricing_groups on user_groups.pricing_group_id = pricing_groups.id LIMIT 2,18446744073709551615")

我将其限制为 2。 我仍然希望在下一个版本中使用它。

如果删除了附加到user_groups记录的pricing_groups中的记录,则可以显示用户组信息。 实际上,我希望它显示用户组信息。 但如果反过来...如果删除了用户组,则可以不显示用户组信息或定价组信息。

要包含user_groups中的所有记录,您需要使用如下LEFT JOIN

SELECT ug.*, pg.* 
FROM user_groups AS ug
LEFT JOIN pricing_groups AS pg
ON ug.pricing_group_id = pg.id 
LIMIT 2,18446744073709551615

LEFT JOIN返回左表(user_groups)中的所有行,以及右表(pricing_groups)中的匹配行。当没有匹配项时,结果是右侧为 NULL。