gpt4 book ai didi

php - 在 UNION 中选择列

转载 作者:行者123 更新时间:2023-11-29 04:58:53 26 4
gpt4 key购买 nike

$queryActivities = mysql_query("
SELECT ua.status, ua.date, 'status' AS is_table FROM users_statuslog ua
WHERE ua.uid = '{$showU[id]}'
UNION ALL
SELECT us.message, us.date 'wall' FROM users_wall us
WHERE us.uid = '{$showU[id]}'
ORDER BY `date` DESC");

这就是我现在所拥有的。我需要 users_wall 中的更多列,比我在 users_statuslog 中需要的更多。我该如何选择它们?因为我不能这样做:

(假设我还想要 isReplyFrom 并从 users_wall 查看)

$queryActivities = mysql_query("
SELECT ua.status, ua.date, 'status' AS is_table FROM users_statuslog ua
WHERE ua.uid = '{$showU[id]}'
UNION ALL
SELECT us.message, us.date, us.isReplyFrom, us.viewed 'wall' FROM users_wall us
WHERE us.uid = '{$showU[id]}'
ORDER BY `date` DESC");

我得到:

使用的 SELECT 语句具有不同的列数。

最佳答案

如消息所述,您有两个列数不同的选择。
联合会将您第一次选择的结果“连接”到第二次选择,但如果列数不同,它就无法工作。

要么找到一种方法来获得相同数量的列,要么在请求中添加虚拟列:

SELECT ua.status, ua.date, 'dummy' AS replyFrom, 'dummy' AS viewed, 'status' AS is_table FROM users_statuslog ua
WHERE ua.uid = '{$showU[id]}'
UNION ALL
SELECT us.message, us.date, us.isReplyFrom, us.viewed, 'wall' FROM users_wall us
WHERE us.uid = '{$showU[id]}'
ORDER BY `date` DESC

资源:

关于php - 在 UNION 中选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3747013/

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