php - MySQL只选择特定行

标签 php mysql select join mysqli

我有一个奇怪的问题。由于某种原因,只选择了特定行。我有这个 user_data 表: enter image description here

website_nameenter image description here

出于某种原因,此命令使用用户 ID 13 有效:

enter image description here

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

enter image description here

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

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

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

最佳答案

你碰巧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';

关于php - MySQL只选择特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170999/

相关文章:

php - 静态页面有效,但是当放入 PHP 时,CSS 无法正确呈现

php - 如何在mysql中更改时间戳格式

Mysql 多个计数列,每个列都有单独的条件

mysql - 从具有总和和计数的表中选择多个数据

java - 从 Java 对象中动态选择字段

PHP : select multiple count(id) from MySQL as one query

php - 如何设置2个选择查询的限制?

mysql - 寻找重叠

Mysql 无效的日期时间格式 : 1292 Incorrect datetime value when creating some dummy data for testing

php - 模板读取 : Database query or File reading? 什么比较贵