我试图从包含多个表的MySQL数据库中删除一些旧的历史数据。有一个“卷”表和一个“元数据”表。当然,对于不存在的卷,您不能拥有元数据,因此存在外键约束。
这是我想要做的一个查询:
DELETE FROM volumes
WHERE deleted > 0 AND
deleted_at IS NOT NULL AND
deleted_at < '2020-01-01T00:00:00' AND
status = 'deleted' AND
左连接应该显示左表上的所有行,但是当运行下面的查询时,我只获得计数为1或更多的位值。有没有人能给我一些指导,告诉我哪里可能出错:
SELECT places.placeId,
placeName,
COUNT(orderId) AS orderCount
FROM places
LEFT JOIN orders
ON places.placeId = orders.placeId
WHERE places.companyId = 1
AND stateId = 1
AND orderstateId =
我试图根据"article_category_reference“表中的特定类别标记从一个表”项目“中提取行,以排除具有特定标记的文章。我现在有一个疑问:
SELECT DISTINCT
a.article_id,
a.`title`,
a.`text`,
a.`date`
FROM
`articles` a
INNER JOIN `article_category_reference` c ON
a.article_id = c.article_id AND c.`category_id` NOT IN (54)
WHERE
a
假设我有一个简化的表结构,如下所示:
Table A - ID (PK)
Table B - ID (PK), AID = FK to Table A
Table C - ID (PK), BID = FK to Table B
Table D - ID (PK), CID = FK to Table C
查询类似如下的内容:
SELECT * FROM TABLE_A TBLA
LEFT JOIN TABLE_B TBLB ON TBLA.ID = TBLB.AID
LEFT JOIN TABLE_C TBLC ON TBLB.ID = TBLC.BID
LEFT JOIN TABLE_D
据我所知,在两个表(比如a& b)之间的左外部连接中,无论右侧表中的行中的值是什么,都会检索连接左侧表中的所有行。那么为什么我们需要一个'ON‘子句来指定一个条件,就像这样:
select * from a LEFT OUTER JOIN b on a.some_column1 = b.some_column2;
为什么需要"a.some_column1 = b.some_column2“这句话。
我有一个表,在其中我在一个名为FullText的列中创建了item_desc索引。
假设表包含三个记录,其中列item_desc包含“氯化钠”,如下所示:
溶液氯化钠标准5425氯化钠100 UQtySodium
我有一个下面的(匹配,针对)查询,该查询应该是通过完全匹配记录返回行,但是它只返回针对氯化钠的前两行,并且不考虑如果它与另一个单词(如QtySodium氯化物)连接在一起的话。
SELECT * FROM tblhugedata WHERE MATCH(Item_desc) AGAINST('"*Sodium Chloride*"' IN BOOLEA
我需要从数据库表中获取满足某些给定条件的x行。我知道我们可以使用ORDER BY RAND ()从MySQL获得随机行。
SELECT * FROM 'vids' WHERE 'cat'=n ORDER BY RAND() LIMIT x
我正在寻找最优化的方式,做同样的{系统资源的低使用率是主要优先事项。下一个重要的优先级是查询的速度。另外,在表格设计中,我应该创建“cat”索引吗?
我在正在工作的MySQL上有了这个选择,并返回了100行。我现在在PostgreSQL DB中有一个相同的表,但是我只得到5行,而不是整个100行;大概是因为匹配的tourprice行只存在于100行中的5行。
以下是查询:
select * from registration
left join tourprice on tourprice.customerstatus_id = registration.customerstatus_id
and tourprice.tour_id = registration.tour_id
where tourprice.d
我正尝试在linq中使用where子句进行左连接。
我有一个有2500行的leadsQuery表。我想将LeadCons表连接到其中。对于一个销售线索,LeadCons表中可以有多个条目,因此我只想在状态匹配时加入。否则,我希望这些字段为空。
var data = from lead in leadsQuery
join lcs in context.LeadCons on lead.ID equals lcs.LeadId into leadsWithCons
from lcs in leadsWithCons.DefaultIfEmpty()
where lead.
我正在asp.net中开发一个web应用程序,我正在使用VS Community2015提供的SQL来创建和管理DB。
在某种程度上,我希望返回一个表中的所有条目,并将其与另一个表连接,可以在该表中拥有完全为空的记录。后一个表中填充了用户在与网站交互时输入的数据。
但是,我的存储过程只获取我希望它为我的大部分记录提取的四行中的一行。当我测试我的代码时,我养成了只使用一个概要文件的习惯,它可以像预期的那样工作。这对我来说很奇怪..。你知道为什么会发生这种事吗?
create proc UserProfile
@email varchar(100)
as
begin
select * from T
当我执行左外连接时,我希望在添加连接表之前获得查询将返回的所有记录,但它只返回与连接表匹配的记录(即:表'documentation‘中不存在'092387’的记录,因此我只希望该记录的'filename‘字段返回null。)我做错了什么?
mysql> select documentation_reference.ref_docnumber
, documentation.filename
from documentation_reference
left outer join documentation on
SELECT
A.RowId
FROM
dbo.Rows A
LEFT JOIN dbo.SpecialRows B ON A.RowId = B.RowId AND B.ExcludeRowId > 0
WHERE
A.FileId = 55
AND A.Active = 1
AND A.ExcludeRowId = 0
AND B.RowId IS NULL /* This is to perform EXCEPT like operation */
朋友们,这是我的问题,我有几个相关的问题。
Q1)假设我有另一个与此查询相
因此,只有在填充了电子邮件字段的情况下,我才需要连接公司表。
如果电子邮件字段为空,有没有办法排除company表连接?
select * from person p left join company c on(substring_index(p.email, '@', -1)=c.website and p.email <> '')
我不能用"where“子句来做这件事,因为我正在连接另一个表,而我无论如何都想要连接那个表。
如有任何帮助,将不胜感激,谢谢!
我已经阅读了许多来自SO的帖子,我理解where子句和on子句中过滤的区别。但这些示例中的大多数都是在右表上进行过滤(当使用左连接时)。如果我有如下查询:
select * from tableA A left join tableB B on A.ID = B.ID and A.ID = 20
返回值不是我所期望的。我认为它首先过滤左边的表,只获取ID = 20的行,然后使用tableB进行左连接。
当然,这在技术上应该与执行以下操作相同:
select * from tableA A left join table B on A.ID = B.ID where A.ID = 20
但我认为
请帮助我执行以下MySQL查询,该查询连接两个表(A和B):
SELECT * from A
left join B on A.sid = B.sid
where (rCode = 1 Or rCode = 2 Or rCode = 3 Or rCode = 5)
AND (rYear = 2011 or rYear is null)
roleCode是表A中的字段,rYear是表B中的字段
结果集与预期不符。只返回185行,但表A中有629行符合where条件。表B中没有匹配行的行不应该以空值返回其B字段吗?
愚蠢的提问时间。Oracle 10g。
where子句是否可能影响连接?
我有一个查询,其形式为:
select * from
(select product, product_name from products p
join product_serial ps on product.id = ps.id
join product_data pd on pd.product_value = to_number(p.product_value)) product_result
where product_name like '%prototype%';
显然,这是一个人为的例子
我有两个表,并希望将它们连接在一起,以便排除第二个表中的所有值。当我连接两个表时,我只需要表1中的值,而不需要两个表中的值或只需要表2中的值。
我认为这可以通过左连接或左外连接来完成,但我发现了一些奇怪的发现。
当我检查所有数据时,我得到了以下计数。
-- TOTAL LEADS: 10067
SELECT COUNT(*) FROM sold_leads AS sl
WHERE sl.affiliate_id IN(1000,1001,1002,1033)
AND sl.create_date >= '2013-1-1'
AND sl.lead_type =
我要加入新老桌。
表:旧表
Employee_Name Status
Ann Y
Bob Y
Carol
Doug Y
Ellen
Frank
表:新
Employee_Name Status
Ann Y
Bob
Carol
Ellen
Frank
我可以通过这个连接获得我想要的输出:
SELECT Old.Employee_Name AS [OldName]
,New.Employee_Name AS [NewName]
,Old.Status AS
select t.customer_type, t.balance_no
from test12 t
where t.customer_type=&a1 and t.currency=
(case when &a2 in t.currency then &a2
else 'ALL'
end);
我从用户那里获取客户类型的数字和货币的字符串,并返回当前行。如果用户输入的货币在表中不可用,则应返回货币值为“all”的行。如果用户输入的货币存在于表中,则需要返回与其对应的行。但在我的代码里,它不是那样工作的。如果用户输入的货币存在于表中,则
目前,我正在尝试从一个具有全局状态的表中获取一个对象,包括从第二个表中获取它的每日状态。为此,我使用以下连接查询,只要statsTable包含“oID”和“Date”列的匹配行即可。
SELECT
o.ID as ID,
o.Image as Image,
o.Text as `Text`,
o.Views as `Views`,
o.Clicks as Clicks,
COALESCE(s.Views, 0) as DayViews,
COALESCE(s.Clicks, 0) as DayClicks
FROM objectTable o
LEFT JOIN s
如果我有一条sql语句,比如:
Select * from Order, OrderDetail
where Order.ID = OrderDetail.OrderID and OrderDetail.Amount > 5
当Order union with OrderDetail find row满足条件Amount>5时,是否意味着在所有行中循环?
请帮帮我。
我的问题是:如果在连接2个表之后,做数据库循环,在创建的所有行中查找满足条件的行。
我有一个食谱的质量保证状态表,并希望选择所有‘丢弃’记录,包括信息从‘完美’状态,他们重叠。但是,我只想得到交叉口,我想要所有的“丢弃”记录。
我想要执行一个左联接,它将给我recipe_qa表中的所有‘丢弃’行,并与任何‘完美’行连接。
select *
from recipe_qa as bad
left join recipe_qa as good on good.id = bad.id
where bad.type = 'discard'
and good.type = 'perfect'
上面的查询返回id的“完美”和“丢弃”记录(24行)的行。我想要
我需要在表B中找到表A中没有匹配行的所有行的in。在这个问题上的回答之后,我使用左联接,如下所示:
select A.id from A left join B on B.id_A = A.id where B.id_A is null;
而且效果很好。但是,现在我需要执行相同的查询,为匹配添加一个附加条件,这意味着我需要查找表A中所有行的If,而表B上没有匹配行,而表B的c列的值为x。
select A.id from A left join B on B.id_A = A.id where B.id_A is null and B.c = x;
显然它给了我一个空的结果集。
到目前为止,我
在表中,一些数据以某种模式出现,如频率、frequency1、frequency2.
如果在where子句中给出频率,如何从表中获取此模式的所有行?
我尝试使用'GLOB'关键字,但它不再返回任何数据。
查询:
select * from tblfrequencyCustom where frequency GLOB 'Ff' OR 'Ff[*]'
在多个关联上使用.joins时,我遇到了一些问题。这是我的模型设置:
class Article
has_many :comments
has_many :tags
end
class Comment
belongs_to :article
end
class Tag
belongs_to :article
end
我正在尝试查找所有带有评论的文章,这些评论具有特定的评论正文或具有特定标签文本的标签。这是我的问题:
Article.joins(:tags, :comments).where("(\"tags\".\"tag\" = &
这两个查询之间有什么区别吗?
问题1:
select a.idclientecrm from clientescrmporlistadeclientescrm a
inner join clientescrmporlistadeclientescrm b on (a.idclientecrm=b.idclientecrm and a.idlistadeclientescrm = 58)
inner join tareas c on b.idclientecrm = c.idclientecrm
where b.idlistadeclientescrm = 70
问题2:
这个练习来自W3Schools。
给定两个表( Employees和Jobs ),查找姓名(first_name、last_name)、薪资等于其职务级别的最低工资的员工的薪资。
所提出的解决办法是:
SELECT
first_name, last_name, salary
FROM
employees
WHERE
employees.salary = (SELECT min_salary
FROM jobs
WHERE employees.job_id =