标签: join

SQL 查询联接将结果限制为每个 ID 一个项目

所以我有 2 张桌子......产品和图片

Products 
---------
id
value1
value2
value3
etc..

Images
---------
id
productId
imageName
Run Code Online (Sandbox Code Playgroud)

图像表每个产品将有多个图像,因此当我运行此查询时:(!= 0 是因为某些图像没有 productId 所以我想排除它们,不确定是否有更好的方法处理那个,或者如果我什至需要包括那个)

select p.*, i.imageName 
from products p, images i 
where p.id = i.productId and i.productId != 0 
Run Code Online (Sandbox Code Playgroud)

我得到了结果,但它给了我多个条目,我只想要每个产品一个结果,我希望它提取第一个添加的图像(所以是最旧的)......

目前的结果是这样的---

id : 1
imagename: name1.jpg

id : 2
imagename: name5.jpg

id: 2
imagename: name6.jpg

id: 2
imagename: name7.jpg

id: 3
imagename:  name3.jpg

etc... etc... 
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样......

id: 1
imagename: name1.jpg

id: 2
imagename: name5.jpg

id: 3
imagename: name 3.jpg
Run Code Online (Sandbox Code Playgroud)

这有意义吗?谁能帮我找出我的问题?

mysql sql join greatest-n-per-group

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

内连接和简单连接之间是否有任何性能差异?

内连接和简单连接之间有什么性能差异吗?即他们中的任何一个有更好的执行计划和/或执行时间吗?并且这两种方法总是会产生相同的结果集吗?

sql join

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

如何在字符串中的特定字符后添加空格?

我需要在字符串中的 X 之间添加一个空格。该程序在一个字段中进行测量,在进行计算之前,我需要能够将整数与“x”分开。

例如:“12x24”应为“12 x 24”

python string join

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

完全外连接不会带来所有结果SQL-Server

我试图从连接中检索所有结果时遇到问题.我在SQL小提琴中设置了一个类似的场景,它可以工作,但在SQL Server中却没有.如果要开具发票或发货,我想为所有内容带来结果.

我在SQL-SERVER中获得的结果是

|  No | Order1 | Shipdate |     No | Order1 |  InvDate |
|-----|--------|----------|--------|--------|----------|
| 111 |    222 | 17-01-18 |    111 |    222 | 24-01-18 |
| 222 |    333 | 18-01-18 |    222 |    333 | 24-01-18 |
Run Code Online (Sandbox Code Playgroud)

即使将连接更改为完全外部,右连接我仍然得到此结果.

我会想,如果我使用全外部它会带来所有结果,不管匹配,但它没有.

我错过了什么来给我完整的外部结果?谢谢

sql小提琴 - http://sqlfiddle.com/#!18/89943/1

sql sql-server join left-join

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

JOIN操作是ddl吗?

由于 join 命令连接了 2 个表,是否类似于更改架构以将其视为 DDL?

mysql sql ddl join dml

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

带有嵌套 case 表达式的 GROUP BY - 有更好的方法吗?

SQL 服务器 2012

我将收取的费用根据客户成为客户的时间长短乘以不同的因素。该group by条款相当直接。但是,select当我想以不同的方式使用此标准时,我会感到尴尬:

select mp.professionals
    ,case when sl.stmndate < dateadd(year, 3, m.qClientOpenDate) then 'New' else 'Old' end age -- straight forward
    ,case (case when sl.stmndate < dateadd(year, 3, m.qClientOpenDate) then 'New' else 'Old' end) -- nested case
        when 'New' then sum(fees) * 0.5
        when 'Old' then sum(fees) * 0.25
        else 0
    end Credit
    ,case (case when sl.stmndate < dateadd(year, 3, m.qClientOpenDate) then 'New' else 'Old' end) -- nested case
        when 'New' then 'Welcome!'
        when …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server join case

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

如何使用新列作为标志来显示空行?

我有表A:

id
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

和表B:

id
2
3
4
Run Code Online (Sandbox Code Playgroud)

我离开了加入 A 和 B:

id id
1  NULL
2  2 
3  3
4  4
5  NULL
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这样的新专栏:

id  id     flag
1   NULL   0
2   2      1
3   3      1
4   4      1
5   NULL   0
Run Code Online (Sandbox Code Playgroud)

Generally speaking, I want all rows in A but not in B to be flaged as 0 and want all rows in both tables to be flaged as 1. How can I achieve …

sql sql-server join left-join

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

关键字“left”附近的未知 SQL 语法错误

我收到语法错误“关键字'left'附近的语法不正确”,但我不知道我做错了什么。我正在尝试运行更新查询以将法国地址设置为 5。我错过了什么?

UPDATE
    Persons p
    left join States s on p.StateID = p.pkState
SET
    p.International = 5
WHERE
    s.CountryRegionCodeID = 'FR';
Run Code Online (Sandbox Code Playgroud)

sql sql-server join where-clause sql-update

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

LEFT Join 具有特定条件的子查询

我有两张表正在尝试加入

table1
----------------------------
Id         Name         Num
123X       Apple        17

table2
-------------------------------------------------
id           EndDt         SomeVal      
123X         10/1/2021     xxx
123X         3/1/2022      yyy
Run Code Online (Sandbox Code Playgroud)

我正在尝试选择table1 a-LEFT JOIN table2 b on a.id = b.id但是,我只想选择 table2 中的 id,其中MAX(EndDt)

Select a.*, b.SomeVal
from table1 a 
    LEFT OUTER JOIN table2 b on a.id=b.id // and b.MAX(EndDt)
Run Code Online (Sandbox Code Playgroud)

类似的事情可行吗?

sql sql-server join

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

KDB 合并/连接不同的表

我如何加入两个不同的表,例如

all_order_ask:([]ask:();ask_qty:();exchange_name_ask:())
all_order_bid:([]bid:();bid_qty:();exchange_name_bid:())
Run Code Online (Sandbox Code Playgroud)

并得到 =====>

final_order:ask:();ask_qty:();exchange_name_ask:();bid:();bid_qty:();exchange_name_bid:()
Run Code Online (Sandbox Code Playgroud)

两个表的行数相同

join kdb

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