我编写了一个查询,返回了将 Customer和Salespeoeple 关联的行。
请注意,查询将联接多个数据库表。请注意,并非所有客户都有销售人员。
c_id c_name s_id s_name
24 microsoft 1 mike
27 sun 1 mike
42 apple 2 bill
44 oracle 1 mike
47 sgi 1 mike
58 ebay 2 bill
61 paypal 3 joe
65 redhat 1 mike
我的数据库中也只有一个表(称为 发票 ),如下所示。
i_id c_id c_name s_id s_name
7208 22 toyota NULL NULL
7209 23 ford NULL NULL
7210 27 sun NULL NULL
7211 42 apple NULL NULL
7212 12 nissan NULL NULL
7213 15 gm NULL NULL
7214 61 paypal NULL NULL
如何在MySQL中使用UPDATE来使我的发票表看起来像下面的表?
i_id c_id c_name s_id s_name
7208 22 toyota NULL NULL
7209 23 ford NULL NULL
7210 27 sun 1 mike
7211 42 apple 2 bill
7212 12 nissan NULL NULL
7213 15 gm NULL NULL
7214 61 paypal 3 joe
也就是说,如何在存在这种关系的地方更新发票表以包含正确的salesperson_id和salesperson_name?
请注意,在存在客户/销售人员关系的情况下,如果该客户有销售人员,则该客户的所有发票都应具有与其相关联的销售人员。
谢谢:-)
支持最广泛的选项
UPDATE INVOICES
SET s_id = (SELECT cs.s_id
FROM CUSTOMERS_AND_SALES cs
WHERE cs.c_id = INVOICES.c_id),
s_name = (SELECT cs.s_name
FROM CUSTOMERS_AND_SALES cs
WHERE cs.c_id = INVOICES.c_id)
WHERE INVOICES.c_id IN (SELECT cs.s_id
FROM CUSTOMERS_AND_SALES cs)
UPDATE INVOICES
JOIN CUSTOMERS_AND_SALES cs ON cs.c_id = INVOICES.c_id
SET s_id = cs.s_id,
s_name = cs.s_name
问题内容: 谁能看到以下查询出了什么问题? 当我运行它时,我得到: #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第8行的’a where a.CompetitionID = Competition.CompetitionID’附近使用 问题答案: 主要问题是内部查询不能与外部语句上的子句相关,因为在内部子查询执行之前,where过滤器首先应用于要
我使用Twittertypeahead.js搜索名单的名字和客户端希望根据名字的建议。 有没有一个选项可以让Twittertypeahead.js搜索查询与每个结果的开头相匹配,而不是字符串中的任何位置? 我可以在函数中看到一个变量,但是我不知道如何将其指定为一个选项,甚至不知道这是否与我试图实现的目标有关。 在我的项目中调用typeahead的jQuery函数是: 我可以看到来自的响应格式 所以
问题内容: 我有一个带有user_ids的表,另一个带有user_ids和其他数据(空)的表。 我想将所有ID插入空表。 我知道我可以用php脚本甚至用以下命令创建copy \ paste脚本 我感兴趣的是,当我不提及每个值时,我能以某种方式使用sql创建查询吗?更像是将所有选定的值复制到新表中。喜欢 问题答案: 看看st INSERT … SELECT语法 使用INSERT … SELECT,您
我只能通过包装每个where条件{'patient id':'123'},{'diet':{$elemmatch:{'status':'a'}}}来使它在Mongo shell中工作。 我如何强制Mongoose将每个查询字段括在花括号中或任何其他想法中?
问题内容: 我使用MSSQL和ADO运行各种SQL语句。 代码序列如下所示: 如果SQL返回结果为空,则最后一条语句将失败。如何检查这种情况以避免运行时错误? 注意:SQL语句来自用户在其中键入SQL的备忘录。 问题答案: 如果您的查询返回记录集(报表),你应该 不 使用,而只是或。 对于不返回记录集例如查询/ / ,使用。在大多数情况下,您会通过查询返回。 其他SQL语句,你应该使用是/ / /
我试图获得一个所有项都匹配的表的结果,然后只显示它们在特定StockID中都匹配的结果。 我尝试在(4,1,8)中执行variantId作为示例,但它向我显示了所有结果,而不是所有结果都与4,1和8匹配的地方: 我希望它返回变量Id匹配4,1和8的3个结果。或者我只想显示与所有ID匹配的股票ID。 我的结构在 一个小样本是: 搜索匹配4,1,8的variantId时,我想要的结果是: