Php 值为null时的查询问题

Php 值为null时的查询问题,php,mysql,sql,Php,Mysql,Sql,我正在使用php查询一个数据库,从当前10个单独的表中查找一条信息。使用多个查询的问题是,访问使用所有这些信息的网页时速度非常慢。当其中一个值由于WHERE而不存在时,我似乎无法得到我想要的所有信息。。。声明 例如,我的单个查询都采用以下格式: SELECT eval_id FROM eval WHERE user_id = $id; 我的多表查询如下所示: SELECT eval_id,list_id,tab_id FROM eval,list,tab WHERE eval.user_id

我正在使用php查询一个数据库,从当前10个单独的表中查找一条信息。使用多个查询的问题是,访问使用所有这些信息的网页时速度非常慢。当其中一个值由于WHERE而不存在时,我似乎无法得到我想要的所有信息。。。声明

例如,我的单个查询都采用以下格式:

SELECT eval_id FROM eval WHERE user_id = $id;
我的多表查询如下所示:

SELECT eval_id,list_id,tab_id
FROM eval,list,tab
WHERE eval.user_id = $id
  AND list.user_id = $id
  AND tab.user_id = $id;
我试图将这些查询组合成一个大型查询,但当表中不存在其中一个查询的用户id时,WHERE中的比较。。。语句搞乱了整个查询。有人知道检索所有这些信息的最佳方法吗

假设这些表是eval、list和tab,它们的id分别是*\u id。即使eval不包含一个user_id=$id的结果,查询该结果的最佳方法是什么

SELECT eval.eval_id, list.list_id
FROM user
JOIN eval ON eval.user_id = user.id
JOIN list ON list.user_id = user.id
WHERE user.id = $id
希望它能帮助你

更新:只需考虑其他解决方案:

SELECT eval_id as id, "eval" as table
FROM eval WHERE eval.user_id = $id

UNION

SELECT list_id as id, "list" as table
FROM list WHERE list.user_id = $id

您可以在WHERE语句中使用以下任意一项进行查询:

AND TABLE.TABLE_id <> null //null 

AND TABLE.TABLE_id <> 'null' //String null

AND TABLE.TABLE_id <> '' //empty String
检查数据库以查看id返回的空值类型,并选择与之匹配的加法


此外,虽然左连接在查询中可能更美观,但它们并不总是更快,因此请确保在使用前对其进行测试。

和NULL eval.user\u id?我正在寻找非常动态的内容。如果eval_id确实产生了一个结果,我希望它给我这个值。在这种情况下,这会产生结果吗?不会。如果usre_id返回null,它将忽略它。我当前有此设置,并且执行10个查询需要很长时间。可以将多个查询合并到一个查询中吗?例如,eval.user\u id=$id或eval.user\u id null和list.user\u id=$id或list.user\u id null是,WHERE语句可以有多个检查