【问题标题】:MySQL only select certain rowMySQL 只选择特定的行
【发布时间】:2014-11-28 01:01:43
【问题描述】:

我有这个奇怪的问题。由于某种原因,仅选择了某些行。我有这个user_data 表:

和website_name 表

由于某些原因,使用用户 ID 13 的此命令可以正常工作:

但使用用户 id 27 没有,但你可以看到我在email_id 行 gumblar.cn 中添加了#27。

为什么它不适用于 id 27?我正在使用这个命令:

SELECT `email_address`, `handset` FROM `website_name` JOIN `user_data` USING ( id ) WHERE `email_id` ='27'

感谢任何帮助和解释。提前致谢。

【问题讨论】:

    标签: php mysql select join mysqli


    【解决方案1】:

    你有一个巧合,id == email_id 为13,你需要改变

    USING ( id )
    

    到

    ON (website_name.email_id = user_data.id)
    

    编辑:

    在您的表格中,您会看到以下行:

    id | website   |email_id
    ---+-----------+--------  
    13 | yahoo.com | 13
    

    你看到 id 和 email_id 是一样的吗?这只是一个巧合,这就是为什么它适用于该号码(您加入的 id 恰好与 email_id 匹配,这正是您应该加入的)。

    您的 SQL 应如下所示:

     SELECT `email_address`, `handset` 
     FROM `website_name` 
         JOIN `user_data` ON (website_name.email_id = user_data.id) 
     WHERE `email_id` ='27';
    

    【讨论】:

    • 您好,使用您的命令将选择email_address 和handset 中的所有数据。我只需要某些行即可工作,例如当我使用 id 27 时,我将获得 2k10@gmail.com 电子邮件地址。另外请原谅我的愚蠢,coincidence that id == email_id for 13 是什么意思。你的意思是website_name拥有id13是巧合吗?
    【解决方案2】:

    您的两个表都包含一个字段id - 但显然,它们标识不同的事物(分别是电子邮件和网站)。这就是为什么你的JOIN 不能使用id 字段来产生合理的结果(它适用于13 只是巧合,查询结果没有意义)。你需要使用

    JOIN user_data ON website_name.email_id = user_data.id
    

    另一种方法是将id 字段重命名为email_id 和website_id。然后,您可以使用JOIN user_data USING(email_id)。

    【讨论】:

    • 您好,使用您的命令将选择email_address 和handset 中的所有数据。我只需要某些行即可工作,例如当我使用 id 27 时,我将获得 2k10@gmail.com 电子邮件地址。另外请原谅我的愚蠢,coincidence 是什么意思。你的意思是这两个表都是巧合有 id #13?
    • 好吧,您仍然需要像以前一样添加WHERE 子句。是的,这就是我所说的“巧合”。
    【解决方案3】:

    您正在使用 id 18 加入,而您的用户中没有 id 为 18。

    你需要用一个 on 语句加入它:

    join user_data on user_data.id = website_name.email_id
    

    【讨论】:

    • 嗨,使用您的命令将选择 email_address 和手机中的所有数据,但我无法获取特定行,例如使用 id 27 将得到我 2k10@gmail.com 电子邮件地址
    • 这是正确的!您的用户表中有 email_id 字段吗?如果不是,您如何识别与电子邮件域相对应的用户。您需要在用户表中添加一个 email_id 字段,一切都应该正常。只需使用“在 user_data.email_id = website_name.email_id 上加入 user_data”或使用(email_id)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 2011-01-26
    • 2012-05-14
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多