gpt4 book ai didi

mysql SELECT 最后一个值从 2 个表,2 列(同名)

转载 作者:行者123 更新时间:2023-11-29 00:21:30 25 4
gpt4 key购买 nike

表 '2_1_journal'

NumberRenamed
-------------
1
2
3

表 '2_1_paidused'

NumberRenamed
-------------
1
2

想要从每个表中选择最后一个值并获取包含 2 个值的数组。

基于例子,创建了这样的代码

SELECT 2_1_journal.NumberRenamed, 2_1_paidused.NumberRenamed 

FROM 2_1_journal

LEFT JOIN 2_1_paidused ON 2_1_journal.NumberRenamed = 2_1_paidused.NumberRenamed

ORDER BY NumberRenamed DESC LIMIT 1


$stmt->execute();
$ArrayWithTwoNumbers = $stmt->fetchColumn();

但出现错误 SQLSTATE[23000]:违反完整性约束:1052 order 子句中的“NumberRenamed”列不明确

如果删除 ORDER BY NumberRenamed DESC LIMIT 1 获取值 1(2_1_journal.NumberRenamed 中的第一个值)。

请指出需要更正的地方。

简单的方法是使用 SELECT 进行 2 次查询。但据我所知,使用一个查询可以更好地节省资源....

更改为 ORDER BY 2_1_journal.NumberRenamed DESC LIMIT 1 并得到 123

改为

(SELECT NumberRenamed FROM 2_1_journal
UNION
SELECT NumberRenamed FROM 2_1_paidused)

ORDER BY NumberRenamed DESC LIMIT 1

get SQLSTATE[42000]: Syntax error or access violation: 1064 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 2 行的“UNION SELECT NumberRenamed FROM 2_1_paidused) ORDER BY NumberRenamed DESC LI”附近使用的正确语法

改为

(SELECT NumberRenamed FROM 2_1_journal )
UNION ALL
(SELECT NumberRenamed FROM 2_1_paidused)

ORDER BY NumberRenamed DESC LIMIT 1

没有错误,但结果不是预期的(从表 2_1_paidused 中获取最后一个值)。如何从表 2_1_journal 中获取最后一个值?

似乎这是解决方案

(SELECT NumberRenamed as Number1 FROM 2_1_journal ORDER BY Number1 DESC LIMIT 1)
UNION
(SELECT NumberRenamed as Number2 FROM 2_1_paidused ORDER BY Number2 DESC LIMIT 1)

$stmt->fetchAll();

获取

[0] => Array
(
[Number1] => 3
[0] => 3
)

[1] => Array
(
[Number1] => 2
[0] => 2
)

值是正确的(正如预期的那样)。但是为什么在[0][1]中有[Number1]呢?预计在 [1] [Number2]

最佳答案

测试如下:

select
(select max(NumberRenamed) from 2_1_journal) max1,
(select max(NumberRenamed) from 2_1_paidused) max2

它只比 2 个不同的查询好一点,唯一的区别是它有 1 个远程调用(网络开销),但是使用 2 个不同的查询会导致 2 个远程调用。

关于mysql SELECT 最后一个值从 2 个表,2 列(同名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com