我想要实现的是让用户能够在给定的时间段内查询数据库中的特定事务,比如“34666”和name。比如:
SELECT * FROM (SELECT * FROM Ledger WHERE transactiondate BETWEEN '2018-01-01' AND '2018-10-10') WHERE name='Customer' OR surnname='Customer' OR fullnames LIKE %Customer% AND (credit="34666" OR debit="34666") sub ORDER BY transactionid ASC;
但上述说法显然是不对的。只是想让你知道我想要达到什么。获取上面的“#1248-每个派生表必须有自己的别名”错误消息。尝试使用别名,但我不太擅长复杂的mysql查询,弄得一塌糊涂。
表包含列:
transactionid
transactiondate
name
surname
fullnames
credit
debit
amount
reference
希望循环并输出与查询匹配的每一行。
谢谢。
2条答案
按热度按时间kfgdxczn1#
选择*自
分类帐
哪里
交易日期介于('2018-01-01')和('2018-10-10')之间
和(name='customer'或surnname='customer'或全名,如'%customer%')
和(credit='34666'或debit='34666')按交易ID asc订购;
vzgqcmou2#
我认为您根本不需要子查询,我不知道您为什么要使用子查询:
错误的确切原因是您的查询有一个没有别名的子查询。确实有个别名
sub
在里面,但在外面。它应该出现在子查询结束之后。不过,我认为这里不需要子查询。