标签: join

在最接近的日期左连接

我有2张桌子

orders
+----+-------+--------+------------+
| id | email | status | date       |
+----+-------+--------+------------+
|  1 |       |      0 | 1427953986 |
|  2 |       |      0 | 1427954771 |
|  5 |       |      0 | 1427957427 |
+----+-------+--------+------------+

price
+----+----+-----+--------+----+-----+------+-------+------------+
| id | wd | bts | family | r  | tlv | kids | user  | date       |
+----+----+-----+--------+----+-----+------+-------+------------+
|  1 |  0 |   0 |      0 | 75 | 65  | 50   | int   | 1425894693 |
| …
Run Code Online (Sandbox Code Playgroud)

mysql join

0
推荐指数
1
解决办法
2万
查看次数

左连接与 WHERE (Microsoft Access SQL)

给定以下 2 个表 a、b:

表一

ID job
1  farmer
2  physician
3  bank clerk
Run Code Online (Sandbox Code Playgroud)

表b

bID ID lang job
1   1  en   farmer
2   2  en   physician
3   3  en   bank clerk
4   2  de   Arzt
5   1  fr   paysan
Run Code Online (Sandbox Code Playgroud)

询问

SELECT a.ID, a.job, b.job FROM a LEFT JOIN b ON a.ID=b.ID WHERE b.lang='de'
Run Code Online (Sandbox Code Playgroud)

通缉:

a.ID a.job        b.job
1    farmer       -
2    physician    Arzt
3    bank clerk   -
Run Code Online (Sandbox Code Playgroud)

实际结果:

2    physician    Arzt
Run Code Online (Sandbox Code Playgroud)

有什么问题LEFT JOIN?我需要一些 (()) 吗?

join ms-access where

0
推荐指数
1
解决办法
1万
查看次数

没有行的表的 CROSS JOIN

在定义中;

SELECT * 
from T1, T2
Run Code Online (Sandbox Code Playgroud)

Cross Join:如果T1有N行,T2有M行,结果集会有N×M行。

如果 T2 没有行,则 JOIN 的结果也没有行。

但是,我想要 N 行(来自 T1),我该怎么办?

有什么建议吗?

注意:我想要笛卡尔积,表之间没有共享列。

postgresql join

0
推荐指数
1
解决办法
6476
查看次数

如何仅选择其子表在其他表中引用的记录?

不确定问题的措辞是否正确,但这里有一个架构示例:

CREATE TABLE TabA (Id INT NOT NULL, PRIMARY KEY (Id));

CREATE TABLE TabB (
    Id INT NOT NULL, 
    TabAId INT, 
    PRIMARY KEY (Id),
    FOREIGN KEY (TabAId) REFERENCES TabA(Id)
)

CREATE TABLE TabC (
    Id INT NOT NULL, 
    TabAId INT, 
    PRIMARY KEY (Id),
    FOREIGN KEY (TabAId) REFERENCES TabA(Id)
)
Run Code Online (Sandbox Code Playgroud)

我需要做的是选择或(或两者)中的记录引用的TabA.Id位置。如果我以编程方式翻译这个:TabA.IdTabBTabC

type B = { Id : int }

type C = { Id : int }

type A = { ItemsB : B list ; …
Run Code Online (Sandbox Code Playgroud)

join sql-server

0
推荐指数
1
解决办法
2072
查看次数

多个Join中的SQL查询过程是怎样的?

我有一个这样的查询:

SELECT *
FROM table_1
     LEFT JOIN table_2 
       ON table_1.ID = table_2.ID
     INNER JOIN table_3
       ON table_1.ID = table_3.ID 
Run Code Online (Sandbox Code Playgroud)

SQL如何处理这个连接?SQL 是否先连接表 1 和表 2,然后将这个新的超级表与表 3 连接?或者它会向另一个方向移动?

join

0
推荐指数
1
解决办法
1143
查看次数

如何使 OUTER JOIN 返回零而不是 NULL

我正在尝试在 SQL Server 上完成此操作。带有数据的最简单的表结构如下所示。

Table: Blog

BlogID | Title
-------+--------
  1    | FirstBlog
 23    | Pizza

Table: User

UserID | Name
-------+-----------
123    | james
444    | John

Table: UserBlogMapping

UserBlogMappingID | BlogID | UserID
------------------+--------+------
1                 |    1   |  123
Run Code Online (Sandbox Code Playgroud)

我想在一个 SQL 查询中获取FormIDUserBlogMappingID。如果提供UserID的不在映射表中,则返回零,否则返回有效的userBlogMappingID。我正在尝试运行以下查询,但它不正确。

SELECT 
    B.BlogID, 
    BUM.BlogUserMappingID 
FROM 
    Blog AS B
        LEFT JOIN BlogUserMapping AS BUM ON B.BlogID = BUM.BlogID
WHERE 
    (B.BlogID = 23)  -- it exists in the table
    AND BUM.userID …
Run Code Online (Sandbox Code Playgroud)

join sql-server

-1
推荐指数
1
解决办法
4269
查看次数

将两个表与包含 null 的键组合在一起

我有两个要加入的表

|id |profit|
| 1 | 1234 |
| 2 | 1345 |
| 4 | 1454 |
| 5 | 1254 |
Run Code Online (Sandbox Code Playgroud)

和另一张桌子

| id | x loss | y loss |
| 2  | 34312  | 4354   |
| 3  | 35614  | 4365   |
| 4  | 36615  | 4321   |
Run Code Online (Sandbox Code Playgroud)

并结合两者,这将是我想要的结果

| id | profit | x loss | y loss |
| 1  | 1234   | Null   | Null   |
| 2  | 1345   | …
Run Code Online (Sandbox Code Playgroud)

null join sql-server

-1
推荐指数
1
解决办法
378
查看次数

查询连接四个表导致一行

我有这两个查询,它们从四个表中提取数据:

select files.id, files.name, dirs.dir
from files
inner join dirs on dirs.id = files.idDir
where files.id = 45

select label
from labels
inner join labels_files on labels_files.idLabel = labels.id
where labels_files.idFile = 45
Run Code Online (Sandbox Code Playgroud)

第一个查询返回 1 行。第二个查询返回 1 个或多个 row/s

我的目标是在结果集中获得一个查询和一行。说:

--------------------------------------------------
45 | test.txt  |  /home  | label1, label2, labeln |
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想我应该尝试派生表,但一直在尝试无济于事。

mariadb join mariadb-10.3

-1
推荐指数
1
解决办法
66
查看次数

左连接没有给出想要的结果

我有两个数据集

FEES                    PAYMENTS            
CrsCode InstNo  FEE     Regno   CRSCODE Instno  Payment
CA1        -2   100     R1     CA1      -2       100
CA1        -1   200     R1     CA1      -1       200
CA1         1   200     R1     CA1       1       200
CA1         2   300                 

DESIRED OUTPUT                          
REGNO   CRSCODE INSTNO  FEE PAID    DIFF        
R1          CA1  -2   100   100     0       
R1          CA1  -1   200   200     0       
R1          CA1   1   200   200     0       
R1          CA1   2   300   0       300     

OUTPUT I AM GETTING                         
REGNO   CRSCODE INSTNO     FEE     PAID  DIFF       
R1          CA1   -2       100 …
Run Code Online (Sandbox Code Playgroud)

join sql-server

-2
推荐指数
1
解决办法
237
查看次数

在加入时选择使用与 id 不同的值

我有两个表,规范化:

table1
id    quality    product_id 
1     100       1
2     100       2
3     10        4
4     50        2
Run Code Online (Sandbox Code Playgroud)

table2
product_id    product    material
1             tinder     metal
2             gold       metal
3             timber     wood
4             stone      rock
Run Code Online (Sandbox Code Playgroud)

如何获得第一张桌子上的所有金属物品?我试过

select sum(quality) from table1 join table2 on table2.material = 'metal';
Run Code Online (Sandbox Code Playgroud)

但似乎不正确(720),应该是250。

join

-2
推荐指数
1
解决办法
148
查看次数

更正代码

请帮助纠正以下代码。

select *
from openquery(DRUPAL,
    'select o.*
     from (
       select
         max(vid),
         nid
       from content_type_irb_application_form
       group by nid
     )  i
     inner join content_type_irb_application_form  o  on o.nid = i.nid and o.vid = i.vid
  ')
Run Code Online (Sandbox Code Playgroud)

消息 7321,级别 16,状态 2,第 1 行 准备查询“select o.* from (select max(vid), nid from content_type_irb_application_form group by nid) i inner join content_type_irb_application_form o on o.nid = i 时发生错误。 nid 和 o.vid = i.vid”,用于针对链接服务器“DRUPAL”的 OLE DB 提供程序“MSDASQL”执行。

join sql-server

-2
推荐指数
1
解决办法
123
查看次数

标签 统计

join ×11

sql-server ×5

mariadb ×1

mariadb-10.3 ×1

ms-access ×1

mysql ×1

null ×1

postgresql ×1

where ×1