php - 当一个表为空时从两个表请求mysql

标签 php mysql database request left-join

我有两张 table 。如果我的第二个表是空的,我的请求返回零行 - 不是......我该如何解决这个问题?

表:用户

id username name   email
1  myuname  myname myemail@domain.com

表:账户

customerid phone params
1          +1111 NULL

我的sql请求如下:

SELECT 
A.phone, 
A.params, 
U.email, 
U.username, 
U.name 
FROM `account` A, `users` U 
WHERE A.customerid = U.id LIMIT 1';

如果我的帐户表为空而用户表不是,则上面的请求返回零行... 我怎么解决这个问题? 谢谢。

最佳答案

您可以使用 LEFT JOIN:

SELECT 
    A.phone, 
    A.params,
    U.email, 
    U.username, 
    U.name 
FROM
    `account` A LEFT JOIN `users` U ON A.customerid = U.id
LIMIT 1

LEFT JOIN 将选择第一个表中的所有行,并且仅选择第二个表中匹配的行。如果不匹配,U.email、U.username 和 U.name 将为 NULL。

关于php - 当一个表为空时从两个表请求mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374559/

相关文章:

php - 如何修复手机版的背景图片没有覆盖整个页面?

php - mysql_fetch_array while 循环

PHP 分配 Javascript 变量导致无限刷新

database - 将书籍存储在数据库中

javascript - PHP Ajax - 如何判断模式是否会弹出?

mysql - sql删除语句

mysql - 无法创建表 `travel` .`city`(错误号 : 150 "Foreign key constraint is incorrectly formed")

mysql - 尝试使用 MySQL Workbench 将 SQL Server 迁移到 MySQL。错误 : "[Microsoft][ODBC Driver Manager] Invalid argument value" when migrating data

mysql - 如何使用命令提示符检查 mysql 中每个数据库/表使用的内存?

MySql 查询需要很长时间才能完成