gpt4 book ai didi

php - MySQL 将表与结果中的原始信息连接起来

转载 作者:行者123 更新时间:2023-11-29 07:55:53 25 4
gpt4 key购买 nike

我有 2 个具有相同字段的表

  1. 视频(id、user_id、category_id、时间戳)
  2. 每月视频数(id、user_id、category_id、时间戳)

现在我的问题是,我可以在字段 user_id 上连接这两个表,以便获得“原始信息”(即实际来自哪个表结果的信息)吗?我需要知道何时使用 PHP 循环遍历 MySQL 结果,如下所示:

forach($results as $result) {
$entry_id = $result->id;
// this id is from table videos or monthly_videos ???
//if from table videos do something
//if from table monthly_videos do something else
}

如果该特定结果来自表“videos”或表“monthly_videos”。

为什么我需要这个是因为虽然 id 是自动递增的,但它仅对该表来说是唯一的。 id 为 5 的用户可以在表“videos”中拥有 id 2 的条目,但他也可以在表 Monthly_videos 中拥有 id 2 的条目 - 所有字段都是如此(信息可以重复)。实际上没关系,我不想删除重复的字段 - 我只需要知道它来自哪个表?

我唯一的解决方案是单独查询每个表并创建一个包含所有信息的多维数组,然后循环遍历该数组,但我想知道是否有一种方法可以直接使用 MySQL 来执行此操作并仅循环结果?

最佳答案

使用 UNION 和字符串值来标记起源:

SELECT 'videos' As origin, id, user_id, category_id, timestamp FROM videos
UNION
SELECT 'monthly_videos', id, user_id, category_id, timestamp FROM monthly_videos

正如 Arth 在评论中提到的,

SELECT 'videos' As origin, id, user_id, category_id, timestamp FROM videos
UNION ALL
SELECT 'monthly_videos', id, user_id, category_id, timestamp FROM monthly_videos

在获得相同结果的同时可以获得更好的查询性能。

关于php - MySQL 将表与结果中的原始信息连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25183654/

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