Php MySQL只选择某一行
我有个奇怪的问题。由于某些原因,只选择了某一行。我有一个用户数据表: 和网站名称表 由于某些原因,使用用户id 13的此命令可以工作: 但使用用户id 27,它没有,但你可以看到我在email_id row gumblar.cn中添加了27 为什么它不能用id 27?我正在使用以下命令:Php MySQL只选择某一行,php,mysql,select,join,mysqli,Php,Mysql,Select,Join,Mysqli,我有个奇怪的问题。由于某些原因,只选择了某一行。我有一个用户数据表: 和网站名称表 由于某些原因,使用用户id 13的此命令可以工作: 但使用用户id 27,它没有,但你可以看到我在email_id row gumblar.cn中添加了27 为什么它不能用id 27?我正在使用以下命令: SELECT `email_address`, `handset` FROM `website_name` JOIN `user_data` USING ( id ) WHERE `email_id` ='
SELECT `email_address`, `handset` FROM `website_name` JOIN `user_data` USING ( id ) WHERE `email_id` ='27'
任何帮助和解释都将不胜感激。提前谢谢。您刚好有一个id==13的电子邮件id,您需要更改
USING ( id )
到
编辑:
在表格中,您可以看到以下行:
id | website |email_id
---+-----------+--------
13 | yahoo.com | 13
你看到id和email\u id的相同之处了吗?这只是一个巧合,这就是为什么你在id上加入的号码起作用,正好与你应该加入的电子邮件id匹配
您的SQL应该如下所示:
SELECT `email_address`, `handset`
FROM `website_name`
JOIN `user_data` ON (website_name.email_id = user_data.id)
WHERE `email_id` ='27';
你有一个巧合,id==13的电子邮件id,你需要更改
USING ( id )
到
编辑:
在表格中,您可以看到以下行:
id | website |email_id
---+-----------+--------
13 | yahoo.com | 13
你看到id和email\u id的相同之处了吗?这只是一个巧合,这就是为什么你在id上加入的号码起作用,正好与你应该加入的电子邮件id匹配
您的SQL应该如下所示:
SELECT `email_address`, `handset`
FROM `website_name`
JOIN `user_data` ON (website_name.email_id = user_data.id)
WHERE `email_id` ='27';
您使用id 18加入,但您的用户中没有一个拥有id 18 您需要使用on语句将其连接起来:
join user_data on user_data.id = website_name.email_id
您使用id 18加入,但您的用户中没有一个拥有id 18 您需要使用on语句将其连接起来:
join user_data on user_data.id = website_name.email_id
您的两个表都包含一个字段id—但是,很明显,它们分别标识了不同的内容—电子邮件和网站。这就是为什么您的联接不能使用id字段来生成合理的结果,因为它在13中工作只是巧合,而查询结果没有意义。你需要使用
JOIN user_data ON website_name.email_id = user_data.id
另一种方法是将id字段重命名为email\u id和website\u id。然后,您可以使用JOIN user\u data USINGemail\u id。您的两个表都包含一个字段id,但显然,它们分别标识电子邮件和网站的不同内容。这就是为什么您的联接不能使用id字段来生成合理的结果,因为它在13中工作只是巧合,而查询结果没有意义。你需要使用
JOIN user_data ON website_name.email_id = user_data.id
另一种方法是将id字段重命名为email\u id和website\u id。然后,您可以使用JOIN user\u data USINGemail\u id。Hi,使用您的命令将选择email\u地址和手机中的所有数据。我只需要特定的行来工作,例如,当我使用ID27时,我将得到2k10@gmail.com电子邮件地址。也请原谅我的愚蠢,你说的id==13的电子邮件id是什么意思。你的意思是说网站名称恰好有id 13?嗨,使用你的命令将选择电子邮件地址和手机中的所有数据。我只需要特定的行来工作,例如,当我使用ID27时,我将得到2k10@gmail.com电子邮件地址。也请原谅我的愚蠢,你说的id==13的电子邮件id是什么意思。你的意思是说网站名称恰好有id 13?嗨,使用你的命令将选择电子邮件地址和手机中的所有数据。我只需要特定的行来工作,例如,当我使用ID27时,我将得到2k10@gmail.com电子邮件地址。也请原谅我的愚蠢,你说的巧合是什么意思。您的意思是两个表都有id 13吗?好吧,您仍然需要像以前一样添加WHERE子句。是的,这就是我所说的“巧合”。您好,使用您的命令将选择电子邮件地址和手机中的所有数据。我只需要特定的行来工作,例如,当我使用ID27时,我将得到2k10@gmail.com电子邮件地址。也请原谅我的愚蠢,你说的巧合是什么意思。您的意思是两个表都有id 13吗?好吧,您仍然需要像以前一样添加WHERE子句。是的,这就是我所说的“巧合”。您好,使用您的命令将选择电子邮件地址和手机中的所有数据,但我无法获取特定行,例如使用id 27将获取我2k10@gmail.com电子邮件地址这是正确的!您的用户表中是否有电子邮件id字段?如果不是,您希望如何识别与电子邮件域对应的用户。你需要在你的用户表中添加一个email_id字段,一切正常。只需在user_data.email_id=website_name.email_id或usingemail_idHi上使用than join user_data,使用您的命令将选择email_地址和手机中的所有数据,但我无法获取特定行,例如,使用id 27将获取我2k10@gmail.com电子邮件地址这是正确的!您的用户表中是否有电子邮件id字段?如果不是,您希望如何识别与电子邮件域对应的用户。你需要在你的用户表中添加一个email_id字段,一切正常。只需在user\u data.email\u id=website\u name.email\u id或usingemail\u id上使用而不是加入user\u data