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
两个带条件表的MySQL查询_Mysql - Fatal编程技术网

两个带条件表的MySQL查询

两个带条件表的MySQL查询,mysql,Mysql,我有两张桌子: users和users\u img 我需要创建一个查询,从users表中选择zip列不为空且img列在users\u image中为空的所有用户(两个表都有用户id:usersid和users\u img,以便可以加入这些表) 用户 身份证 名字 拉链 上次 用户ID 身份证 用户id(与users中的id相同) img 我试过这个: SELECT * FROM `users` JOIN `users_ids` on users.id = users_ids.user_id W

我有两张桌子:
users
users\u img

我需要创建一个查询,从
users
表中选择
zip
列不为空且
img
列在
users\u image
中为空的所有用户(两个表都有用户id:
users
id和
users\u img
,以便可以加入这些表)

用户

  • 身份证
  • 名字
  • 拉链
  • 上次
  • 用户ID

  • 身份证
  • 用户id(与
    users
    中的
    id
    相同)
  • img
  • 我试过这个:

    SELECT * FROM `users` JOIN `users_ids` on users.id = users_ids.user_id
     WHERE `zip` != '' AND `img` = '' ORDER BY `last_time` DESC 
    

    没有运气。我知道应该很简单。

    我已经修改了您的查询,以检查
    中的
    值是否为空

    试试这个:

    SELECT * FROM `users` 
    LEFT JOIN `users_ids` on users.id = users_ids.user_id 
    WHERE   (TRIM(`zip`) != '' OR `zip` is not null)  AND 
    (TRIM(`img`) = '' OR `img` is null) ORDER BY `last_time` DESC 
    
    这起到了作用:

    SELECT * FROM `users` as `u` 
    LEFT JOIN `users_ids` as `uid` on `u`.`id` = `uid`.`user_id` 
    WHERE `u`.`zip` != '' 
    AND `uid`.`img` IS NOT NULL 
    ORDER BY `u`.`last_time` DESC 
    

    它也会为你工作

    SELECT * FROM `users` as `u` 
    JOIN `users_ids` as `uid` on `u`.`id` = `uid`.`user_id` 
    WHERE `u`.`zip` IS NOT NULL 
    AND `uid`.`img` IS NULL 
    ORDER BY `u`.`last_time` DESC
    

    根据您的逻辑,它至少应该是
    。其中'zip'!='和'img`=''
    。另外,您是否确定它们为空且不为空。也发布一些示例数据也许你应该包括你的表的模式?@amdixon-是的,当然,伙计。但这不是重点。我也需要这个查询(当zip和img都不为空时)。我不知道怎么做。但我会添加一些额外的信息以使其更清楚。谢谢!!你需要生成一个MCVE()。在有关数据库查询的问题中,这通常意味着您需要显示表的最小架构、每个表的一小组行、您得到的结果、结果错误的原因以及所需的结果。您可能需要在
    用户
    表中输入3-6个条目,而
    用户ID
    表。如果没有它,我们不得不猜测您的问题是什么。MySQL返回了一个空结果集,与我的请求amd
    img
    tinytext,latin1\u swedish\u ci非常相似,否(关于null)您的联接表中可能有不匹配的值。请检查这一点。您的表中可能有空数据,或者存在的记录与此查询中的userID不匹配,而没有
    where
    子句。如果您没有得到任何结果,这意味着我们在
    JOIN
    中遇到问题。请从
    user中选择*s
    JOIN
    users\u id
    on users.id=users\u id.user\u id WHERE(
    zip
    !=''或
    zip
    不为空)和(
    img
    !=''或
    img
    不为空)按
    上次
    DESC说明排序进行查询时,我得到三个结果(因为有三个用户的zip和img都不为空)但是有200人的拉链不是空的,而是空的,因为一个奇怪的原因我不能得到这些!