所以我有 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)
这有意义吗?谁能帮我找出我的问题?
内连接和简单连接之间有什么性能差异吗?即他们中的任何一个有更好的执行计划和/或执行时间吗?并且这两种方法总是会产生相同的结果集吗?
我需要在字符串中的 X 之间添加一个空格。该程序在一个字段中进行测量,在进行计算之前,我需要能够将整数与“x”分开。
例如:“12x24”应为“12 x 24”
我试图从连接中检索所有结果时遇到问题.我在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 服务器 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) 我有表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 …
我收到语法错误“关键字'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) 我有两张表正在尝试加入
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)
类似的事情可行吗?
我如何加入两个不同的表,例如
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 ×10
sql ×8
sql-server ×5
left-join ×2
mysql ×2
case ×1
ddl ×1
dml ×1
kdb ×1
python ×1
sql-update ×1
string ×1
t-sql ×1
where-clause ×1