首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完全连接MySQL查询返回空

问完全连接MySQL查询返回空
EN

Stack Overflow用户
提问于 2013-12-11 20:05:10
回答 2查看 87关注 0票数 0

下面是一个MySQL查询:

代码语言:javascript
复制
SELECT TestSite . * , LoggedCarts . * 
FROM TestSite, LoggedCarts
WHERE TestSite.email =  'LoggedCarts.Bill-Email'
LIMIT 0 , 30

它返回一个空的结果集,而它应该根据下表返回四个结果。

第一表: LoggedCarts -列:账单-电子邮件

代码语言:javascript
复制
casedilla@hotmail.com
crazyandy@theholeintheground.com

第二表: TestSite -列:电子邮件

代码语言:javascript
复制
samuel@lipsum.com
taco@flavoredkisses.com
honeybadger@dontcare.com
casedilla@hotmail.com
messingwith@sasquatch.com

目标是获得一个MySQL语句,该语句返回表: TestSite中与表: LoggedCarts中的行不匹配的行。

注意:我知道在构建查询时,在列名中使用连字符需要特别小心,这涉及回拨以告诉MySQL存在特殊字符。但是,我会更改列名以匹配该表: LoggedCarts通过雅虎购物车通过post提供数据,而且在插入之前无需进行大量准备,只需将post数据中发送的键设置为任何内容都是令人生畏的。

但是,如果在插入之前重建数据比使用JOIN语句容易,或者由于某种原因使用两个名称不同的列(因为比较列不能工作),我将遍历并重新构建数据库和PHP代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-11 20:47:31

在给出的一些提示的启发下,我找到了我在这里寻找的解决方案:不存在的地方

做我需要它做的事情,另外,我喜欢使用的简写语法,它允许您为表名输入别名,并在整个语句中使用别名。

代码语言:javascript
复制
SELECT *
FROM TestSite e
WHERE NOT EXISTS
    (
    SELECT  null 
    FROM    LoggedCarts d
    WHERE   d.`Bill-Email` = e.email
    )
票数 0
EN

Stack Overflow用户

发布于 2013-12-11 20:08:05

单引号表示字符串文字。您需要使用backticks作为标识符。此外,标识符的每个组件都必须单独引用。

代码语言:javascript
复制
SELECT TestSite . * , LoggedCarts . * 
FROM TestSite, LoggedCarts
WHERE TestSite.email =  LoggedCarts.`Bill-Email`
LIMIT 0 , 30

来自手册

如果多部分名称的任何组件需要引用,请单独引用它们,而不是引用整个名称。例如,编写my-table.my-column,而不是my-table.my-column。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20528876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档