Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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_Database - Fatal编程技术网

MySQL:根据用户输入从多个表中提取和显示信息

MySQL:根据用户输入从多个表中提取和显示信息,mysql,database,Mysql,Database,谈到SQL编程,我有点不知所措,但在寻找问题的解决方案后,我没有找到任何相关的答案,因此我的问题如下: 使用MySQL,我有一个名为newsletter_subscriber的表。此表仅包含电子邮件地址列表(订户电子邮件),每行电子邮件地址具有唯一ID(订户ID),每行ID递增1 我想要完成的是能够输入“from”ID和“to”ID(例如从672到835),并且对于每一个ID,都有针对相应电子邮件地址查询的表sales_flat_order_address和sales_flat_order_ad

谈到SQL编程,我有点不知所措,但在寻找问题的解决方案后,我没有找到任何相关的答案,因此我的问题如下:

使用MySQL,我有一个名为newsletter_subscriber的表。此表仅包含电子邮件地址列表(订户电子邮件),每行电子邮件地址具有唯一ID(订户ID),每行ID递增1

我想要完成的是能够输入“from”ID和“to”ID(例如从672到835),并且对于每一个ID,都有针对相应电子邮件地址查询的表sales_flat_order_address和sales_flat_order_address,以返回客户的名字(firstname)和姓氏(lastname)连同电话号码(电话)

这三个表格(时事通讯订户、表格销售、平面订购、地址和销售、平面订购、地址)唯一的共同点是电子邮件地址。如果在sales_flat_order_地址和sales_flat_order_地址中找到匹配项,则应放弃对该电子邮件地址的进一步搜索,这样我们就不会得到同一电子邮件地址的多个结果(两个表可能包含相同的电子邮件地址,每个表甚至可能多次包含该电子邮件地址,在所有情况下,都会显示名字、姓氏和电话的完整信息)

最终结果应该是这样的(我的评论如下):

*1:第1列,显示表newsletter\u subscriber中手动输入的订户ID列中增加的ID

*2:第2列,显示来自表newsletter\u subscriber的相应现场订户\u电子邮件

*3:第3列,显示表sales_flat_order_address或sales_flat_order_address中的相应字段firstname,以与第2列中的相应电子邮件地址相对应

*4:第4列,显示表sales\u flat\u order\u address或sales\u flat\u order\u address中的相应字段lastname,以与第2列中的相应电子邮件地址相对应

*5:第5列,显示表sales_flat_order_地址或sales_flat_order_地址中的相应现场电话,与第2列中的相应电子邮件地址相对应

任何人都可以提供一个代码示例吗?

您可以尝试:

select ns.email, a.firstname, a.lastname, a.telephone from sales_flat_order_address a inner join newsletter_subscriber ns on
a.subscriber_ID = ns.ID
考虑到您的表具有以下字段,这应该是可行的: 销售\公寓\订单\地址:电子邮件、名、姓、电话、订户\ ID
时事通讯订户:ID,电子邮件

试试这个它会起作用的:

SELECT t1.`subscriber_email`, t2.`firstname`, t2.`lastname`, t2.`telephone` from `newsletter_subscriber` t1 JOIN `sales_flat_order_address` t2 on
t1.`subscriber_email` = t2.`email`

手动是什么意思?手动在哪里?哎呀,我相信有可能得到用户输入的提示。想想看,正常的SQL编程可能不可能做到这一点,即使我的SQL数据库处理程序(Navicat)是否提供此选项。也许这是Navicat特有的功能?感谢您的贡献,但对我(作为新手),您似乎依赖于两个表中的相同ID,即通讯、订户和销售、平板、订单地址?事实并非如此。唯一的共同点是电子邮件地址。谢谢Rohit。这解决了我遇到的核心“问题”,并使用您的代码作为基础,我能够扩展它以满足我的需要。
SELECT t1.`subscriber_email`, t2.`firstname`, t2.`lastname`, t2.`telephone` from `newsletter_subscriber` t1 JOIN `sales_flat_order_address` t2 on
t1.`subscriber_email` = t2.`email`