私信  •  关注

D-Shih

D-Shih 最近创建的主题
D-Shih 最近回复了
3 年前
回复了 D-Shih 创建的主题 » MySQL更新与加入

我们可以把 SET 之后 INNER JOIN 因为 UPDATE Statement , table_reference 使用前 设置

顺便说一句,也许你不需要 FROM

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]

所以我们可以使用下面的方法。

UPDATE new_leads_test2 AS t1
INNER JOIN new_leads_test2 AS t2
ON (t1.PHONE1 = t2.PHONE1
AND t1.ID > t2.ID)
SET t1.duplicate = t2.ID
3 年前
回复了 D-Shih 创建的主题 » 在MySql中求和后得到最小值和最大值

如果我理解正确,您可能需要使用聚合函数 group by

SELECT MIN(Total_Amount),
       MAX(Total_Amount)
FROM (
    Select Table_Date,sum(Amount) as Total_Amount 
    from usertable 
    where Table_Date>=DATE(NOW()-INTERVAL 8 DAY) 
    group by Table_Date
) t1
3 年前
回复了 D-Shih 创建的主题 » MySQL分割单元值

第二个参数 SUBSTRING 一开始可能是 1 而不是 0

此函数的任何形式的pos都可以使用负值。pos的值为0时返回空字符串。

然后你可以使用一个小技巧来更新 Nazov 列,然后更新 Cislo

我想你可以试试这个。

UPDATE `skladovekartyvyrobok00001` SET 
    `Nazov`= SUBSTRING(`Cislo`,6),
    `Cislo`= SUBSTRING(`Cislo`,1,5)
    WHERE `ID`=31;

sqlifddle

3 年前
回复了 D-Shih 创建的主题 » MySQL子查询和分组依据

如果您的MySQL版本不支持窗口功能,您可以尝试使用子查询来获取 MAX 生效日期然后自行加入

问题#1

SELECT t1.employee_id,
    t1.level,
    t1.effectivity_date,
    max(t1.created_at) created_at
FROM leave_approvers t1
INNER JOIN (
    SELECT level,employee_id,MAX(effectivity_date) max_effectivity_date
    FROM leave_approvers
    GROUP BY level,employee_id
) t2 
ON  t1.effectivity_date = t2.max_effectivity_date
AND t1.level = t2.level
AND t1.employee_id = t2.employee_id
WHERE t1.employee_id = 13
GROUP BY t1.employee_id,
    t1.level,
    t1.effectivity_date
ORDER BY t1.level, t1.effectivity_date ASC, max(t1.created_at) ASC;
雇员身份证 数量 生效日期 创建于
13 1. 2022-02-16 00:00:00 2022-02-14 19:10:25
13 2. 2022-02-14 00:00:00 2022-02-14 22:21:05
13 3. 2022-02-14 00:00:00

View on DB Fiddle

3 年前
回复了 D-Shih 创建的主题 » mysql使用外键将数据从一个表复制到另一个表

你不需要 INSERT 表中列出了一个别名,我认为您可能需要使用 INSERT INTO ... SELECT 在…上 display_preview display

您可以尝试下面的查询

INSERT INTO display_preview (inputPreviewOffsetLeft,inputPreviewOffsetTop, inputPreviewSizeWidth, inputPreviewSizeHeight)
SELECT bd.inputPreviewOffsetLeft, bd.inputPreviewOffsetTop, bd.inputPreviewSizeWidth, bd.inputPreviewSizeHeight 
FROM display_preview b
INNER JOIN display bd on bd.id = b.displayId

编辑

如果你想 UPDATE ... JOIN 你可以试试这个。

UPDATE display_preview b
INNER JOIN display bd on bd.id = b.displayId
SET 
    b.inputPreviewOffsetLeft = bd.inputPreviewOffsetLeft, 
    b.inputPreviewOffsetTop = bd.inputPreviewOffsetTop, 
    b.inputPreviewSizeWidth = bd.inputPreviewSizeWidth , 
    b.inputPreviewSizeHeight = bd.inputPreviewSizeHeight 

有关更多详细信息,请参阅 MySQL UPDATE JOIN

如果你不设定 network 你的码头工人会用的 bridge 默认模式。

我认为问题是你可能会使用 {containerName}:5432 而不是 localhost:5432 从你的 JDBC 连接字符串,因为 localhost 指的是你的网站容器,而不是真正的计算机,这样你就无法通过它连接到数据库。

jdbc:postgresql://bamboo-pg-db-container:5432/bamboo
3 年前
回复了 D-Shih 创建的主题 » 如何使用mysql填充每个组的空记录?

你可以尝试使用 OUTER JOIN 有一个子查询 CORSS JOIN 得到结果 RANKING & DAYOFWEEK 笛卡尔积

问题#1

SELECT t1.RANKING,
       t2.DAYOFWEEK,
       t2.MENU
FROM (
  SELECT DISTINCT t1.DAYOFWEEK,t2.RANKING
  FROM MY_LOG t1
  CROSS JOIN MY_LOG t2
) t1 LEFT JOIN  MY_LOG t2
ON t1.RANKING = t2.RANKING 
AND t1.DAYOFWEEK = t2.DAYOFWEEK
ORDER BY t1.DAYOFWEEK,t1.RANKING;
排名 星期五 菜单
1. 星期一 披萨
2. 星期一 冰淇淋
3. 星期一
4. 星期一 大米
5. 星期一 面包
1. 星期二 披萨
2. 星期二 冰淇淋
3. 星期二
4. 星期二 大米
5.
1. 星期三 披萨
2. 星期三 冰淇淋
3. 星期三
4.
5.

View on DB Fiddle