首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL许多‘MySQL’语句

MySQL许多‘MySQL’语句
EN

Stack Overflow用户
提问于 2011-11-08 18:28:32
回答 4查看 707关注 0票数 1

我有这个语句,这是错误的方法,但是我如何让语句工作(语句的结果需要包含所有的AND )

代码语言:javascript
复制
SELECT a.username, a.first_name, a.last_name
     , b.tx_time, b.account_id
     , a.id 
     , b.table_id, b.tx_type, b.amount 
FROM punter a
   , account_transaction b 
WHERE b.tx_time >= '2011-07-01' 
  AND b.tx_time < '2011-09-30' 
  AND b.account_id = a.id 
  AND b.tx_type = 4 
  AND b.tx_type = 14
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-08 18:36:15

AND b.tx_type = 4 AND b.tx_type = 14会给你一个空的结果集。一列在同一时间只能有一个值。

代码语言:javascript
复制
SELECT a.username, a.first_name, a.last_name, 
       b.tx_time, b.account_id, a.id,
       b.table_id, b.tx_type, b.amount 
FROM punter a 
INNER JOIN account_transaction b ON b.account_id = a.id
WHERE b.tx_time BETWEEN '2011-07-01' AND '2011-09-30' AND b.tx_type IN (4,14) 
票数 2
EN

Stack Overflow用户

发布于 2011-11-08 18:34:19

您可以使用显式连接来稍微简化一下:

代码语言:javascript
复制
SELECT a.username, a.first_name, a.last_name, 
       b.tx_time, b.account_id, a.id,
       b.table_id, b.tx_type, b.amount 
FROM punter a INNER JOIN account_transaction b 
    ON b.account_id = a.id
WHERE b.tx_time BETWEEN '2011-07-01' AND '2011-09-30' 
  AND b.tx_type = 4 
  AND b.tx_type = 14

请注意,我认为使用b.tx_type = 4 AND b.tx_type = 14是错误的,因为它总是错误的。如果需要获取包含tx_type = 4tx_type = 14的记录,可以使用以下命令更改最后的SQL行

代码语言:javascript
复制
AND b.tx_type IN (4,14)
票数 2
EN

Stack Overflow用户

发布于 2011-11-08 18:35:57

我猜你是说b.tx_type = 4 OR b.tx_type = 14

代码语言:javascript
复制
SELECT a.username, a.first_name, a.last_name, b.tx_time, 
b.account_id, a.id, b.table_id, b.tx_type, b.amount 
FROM punter a, account_transaction b 
WHERE b.tx_time >= '2011-07-01' AND b.tx_time < '2011-09-30' 
AND b.account_id = a.id 
-- AND b.tx_type = 4 AND b.tx_type = 14
AND b.tx_type in (4, 14)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8048996

复制
相关文章

相似问题

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