我有两个SQL (Azure SqlDB)表,表A和表B。每个表共享P_Code列。表A有600个记录,表B有400个匹配(A.P_Code = B.P_Code)。
我感兴趣的是A中的200条记录,而不是B中的记录。我尝试了以下两个查询,但都没有返回任何结果。我哪里出错了。
Select A.* From
[Table A]A
FULL OUTER JOIN
[Table B]B
ON A.P_CODE = B.P_CODE
WHERE B.P_CODE IS NULL
Select A.* From
[TABLE A] A
LEFT JOIN
[TABLE B] B
ON A.P
我有两张桌子。都有很多专栏。现在,我有了一个名为ID的公共列,我将在其中加入。
现在,由于这个变量ID存在于两个表中--如果我只是这样做的话
select a.*,b.*
from table_a as a
left join table_b as b on a.id=b.id
这将导致一个错误,因为id是重复的(在两个表中都存在,并同时包含在两个表中)。
我不想在select语句中单独写下b的每一列。我有很多专栏,这很痛苦。我是否可以在join语句本身中重命名b的ID列,类似于SAS数据合并语句?
我在用Postgres。
因此,我加入了这两个表A和B,B包含first_name和last_name,所以我编写了这样的查询
select col1,col2,...,col12,CONCAT(first_name,last_name) as NAME
from A
INNER JOIN B on A.email=B.email;
现在,我想要这个查询中的所有列,但是没有编写所有列names...are,而是有任何方法来获得每一列以及这两个first_name和last_name的连接。
我有两张桌子users和distance。在页面中,我需要列出使用简单查询(如select * from users where active=1 order by id desc )的所有用户。
有时,我需要从distance表中输出数据以及这个查询,其中users中的用户ID字段在distance表中的两个列中都匹配,比如userID_1和userID_2。同样,在distance表中,上述两列中的任何一列也必须匹配指定的id ($userID)以及where子句。
这是我想出的最好的:
select
a.*,
b.distance
from
users a,
我有两张桌子,即- TDM & AccountMaster。这两个列都有三个相等的列,我必须创建一个表,从连接这三列的TDM-table中检索所有行,即FD_BRANCH,FD_CUSTCODE & PRODUCTID.
通过select into子句创建表时,我得到一个错误
每个表中的列名必须是唯一的。表'acty‘中的列名'FD_BRANCH’不止一次指定。
请查找以下查询,以便根据我的要求创建一个表:
SELECT * FROM (SELECT FD_BRANCH,FD_CUSTCODE,PRODUCTID FROM TDM
GROUP BY F
我使用的是SQL Server 2000。我有多个条件,我必须使用这些条件从另一个表的多个表中提取不同的记录集。我正在使用
INSERT INTO T1(A,B)
(SELECT E,R FROM T2)
UNION
(SELECT Z,X FROM T3)
查询分析器抛出错误,在使用UNION时,应将ORDER BY子句与SELECT一起使用。即使这样,我也不能联合两个不同的查询,这两个查询在select子句中检索相同的列。
在UNIONS和ORDER BY中使用SELECTS插入的正确方式是什么?
我有一个独特的情况,我必须根据文本字段连接两个表。(这是我所知道的令人讨厌的事情)
问题是,一个表中的联接列是:
ColumnA
Amz-g-r-t
Amz-g-r2-t
Amz-g1-r-t-x
在第二个表中,列可能在相同的行中包含更多的值:
ColumnB
Amz-g-r-t not to ship
Amz-g-r2-t OK
Amz-g1-r-t-x
我想做的是:
select *
from A
join B on (a.ColumnA=b.ColumnB)
但是由于B中的数据,它不能工作,所以我需要一种方法,在第一个空格之后从B行中删除所有字符。因此,ColumnB将是:
Amz-g-
嗨,我想获得以下结果,以便在php中使用搜索脚本,我有两个表,如下所示
Table 1 :
-----------------------------
id l name l url l image url l
-------------------------------
Table 2 :
-----------------------------------
id l tableoneid l desc l content l
------------------------------------
注:(表1-> id) =(表2 --> tableoneid)
我正在尝试从由id映射的两个表中提取记录,而在第二个表中可能缺少一行。
我在第二个表中有一个名为name的列,其中包含一个字符串值。我需要提取的值是‘订阅’,但它并不总是存在于表中。在此列中有可能有不同的值,我不想提取这些值。
是否可以检查该值是否存在,以及是否没有将null输出到所有字段。
到目前为止,我有一个返回所有记录的方法
select COUNT(*)
from PUser a, PAttribute b
where exists (select null
from PAttribute c
where c.name =
设置如下:
表B有一个名为task的列和另一个keyid。
表C有列keyid和type。
我想要做的是删除B中的所有条目,以便B.task = C.keyid和C.type='1‘。如果我想选择要删除的行,查询将是:
SELECT * FROM B,C
WHERE B.task=C.keyid
AND C.type='1'
我尝试了几种选择,最近的一种是:
DELETE FROM B
WHERE keyid IN (SELECT B.keyid FROM B,C
WHERE B.task=C.keyid
我想要创建一个SQL查询(使用Oracle),其中我将跨两个列组合值,每个列都存在于不同的表中(它们由一个代码连接)。以下是我到目前为止的查询:
SELECT COALESCE(a.SERIES1,b.SERIES2)
FROM TABLE1 a, TABLE2 b
WHERE a.CODE = b.CODE
但是,当我将列连接在一起时,我也希望返回null。我想我只是得到了SERIES1 =SERIES2.
理想情况下,我想得到以下内容:
如果SERIES1不是null,则返回SERIES1
如果SERIES2不是null,则返回SERIES2
如果SERIES1和SERIES2
我创建了一个表,其中包含一个名为buckets的存储桶,其中有一个名为mybuckets的列。
然后我创建了以下查询:
SELECT
Id
,b.CityName
, SUM(Sales) as Sales
FROM buckets b
LEFT JOIN production as t1 ON b.CityName = t1.CityName
group by
1,2
但是,有9个桶可用,但是由于这个ID不能在9个可用桶中的2个中产生,所以只返回7个桶。
如何确保显示所有的桶,并且当没有出售时,行中的值是0?
下面是表的一个示例
Production
Buckets
我希望将表中的值从同一表中获取为不同值的两个不同的列。使用此查询作为示例(注意select是如何与两个不同的表别名在同一个表上的):
SELECT a.myVal, b.myVal
FROM MyTable a, MyTable b
WHERE
a.otherVal = 100 AND
b.otherVal = 200 AND
a.id = b.id
当我在dataset上运行这样一个相对简单的查询时,它可以工作--它只需要很长的时间。是否有更好/更聪明的方式编写此查询?
我的表包括3个date列、dateA、dateB和dateC --这是我需要的:
JOIN ON dateA between dateB and dateC
JOIN在Teradata中运行得很好,但是在Hive中运行时会出现错误。
select *
from
table A
left join table B
on A.col1 = B.col1
and A.dateA between B.dateB and B.dateC
错误:
在联接dateB中遇到的左别名和右别名
我真的很感谢你在这方面的帮助!
这是我的困惑:
我需要基于主键连接两个表的所有列,但我不想在结果中重复主键。第二个表有主键,然后是未知的列号和名称。
所以本质上我想
SELECT * (except for b.PK) FROM
TableA a
JOIN TableB b ON a.PK = b.PK
显而易见的解决方案是从表a( a.PK除外)中显式地选择所有列,但假设我也不知道表a中列的数目或名称(除了我知道它有PK)。
因此,总结如下:
如何通过它们的PK连接两个表,其中我不明确地知道它们的其余列,并且不在结果中重复PK?
编辑:(在Server中使用T)
我正在使用多个CTE运行一个庞大的update查询,用表"B“中列的值更新表"A”中的许多列(50+)。当查询结束时,表A中的所有列都已成功更新,除了两个包含大量空值的列(我可以说是75%的空值)。这完全出乎意料,因为表A或表B中的两列都不包含任何空值。
简化的示例代码(仅显示问题中的两列的最终CTE ):
WITH B AS
(SELECT T.position
,CASE WHEN CTE1.full_name = '' THEN CTE2._name
ELSE CTE1.full_name
END AS N
我知道错误了
“您的SQL语法出现了错误;检查与您的MySQL服务器版本对应的手册,找出正确的语法,以便在a.rollno=p.username上使用接近‘完全外部连接的a.rollno=p.username a’,其中第1行为ps.自由度=‘B’。”
我使用的查询如下:
SELECT p.username, p.firstname, a.matric_obtain_marks
FROM adm_student_academic a,
profile_student AS ps,
PROFILE p FULL OUTER JOIN adm_student_ac
我有两个表(每个表大约300,000行),其中一个列标识符列(ID)被索引。下面的查询需要几秒钟时间:
SELECT *
FROM Table_1 a JOIN Table_2 b on a.ID=b.ID
与以下需要数小时的查询相比:
SELECT *
FROM Table_1 a LEFT JOIN Table_2 b on a.ID=b.ID
这两个查询的不同之处在于,一个查询使用“联接”,另一个查询使用“左连接”。
查询结果需要包含Table_1中的所有行,因此我别无选择,只能执行“左联接”。
也尝试了这种方法,这也花费了大量的时间:
SELECT *
FROM Table_1 a J
我对SQL很陌生,并试图在这种情况下找到要使用的正确联接。表A包含一系列唯一的(即不重复)ID。表B包含每个ID的多个度量,包括表A中不存在的ID。我需要一个包含表B中所有数据的合并表,用于表A中的ID。
例如:
A B JOINED:
ID ID | count | date ID | count | date
- -- | ----- | ---- -- | ----- | --
我正在尝试构建一个执行以下操作的PostgreSQL查询,但到目前为止,我的努力都是徒劳的。
问题:有两个表:a和B。我想从表A中选择所有列(包含列: id、name、description),并将"A.name“列替换为表B中的列"B.title”的值(有列: id、table_A_id标题、langcode),其中B.table_A_id为5,B.langcode为"nl“(如果有行的话)。
我的尝试:
SELECT A.name,
case when exists(select title from B where table_A_id = 5 and lang
例如,
-- use WHERE
SELECT
a.id
FROM
table_a as a,
table_b as b
WHERE
a.id = b.id;
-- use JOIN
SELECT
t1.id
FROM
(
SELECT
id
FROM
table_a as a
) t1
JOIN (
SELECT
id
FROM
table_b as b
) t
我正在两个表之间进行连接,并希望根据列是否有记录来选择它们。我试图避免有多个相同的字段,并试图将它们压缩为单个列。类似于:
Select
id = (CASE WHEN a.id IS NULL THEN b.id ELSE a.id END),
name = (CASE WHEN a.name IS NULL THEN b.name ELSE a.name END)
From Table1 a
Left Join Table2 b
On a.id = b.id
Where a.id = @id
如果存在记录,我希望id从Table1中填充,但如果没有从Table2中提取,则
嗨,不知道是否有人能帮我解决这个问题。我有一个数据集,其中有两列。列A/列B;让我们称它为表UpdateData。
还有两个包含标准数据的Access表,它们是这些代码的映射表。一个表是更新前代码(oldCodes),另一个是系统更新后代码(NewCode)。在我的数据集中,列A具有更新前代码,列B具有更新后代码。我的想法是在SQL Server (2005)中将这两个Access表的新代码和旧代码合并为一个表,从而创建表combinedCodes:
Oldcode display
===== =======
RTYX45 No
GHYUN6 No
BYUER5