gpt4 book ai didi

mysql - 单个 MySQL 查询中的两个 LEFT JOIN

转载 作者:行者123 更新时间:2023-11-30 01:31:09 25 4
gpt4 key购买 nike

我试图在 MySql 查询中插入两个不同表中的“标题”。如果我尝试下面的第一个查询,它就会起作用。添加第二个 LEFT JOIN 后,它仍然会获得第一个“博客”标题,但不会获得第二个“专辑”标题。关于如何从两个表中获取两个标题有什么想法吗?请注意,我需要确保每个条件都满足以下条件:updates.ref_table = 'albums' AND updates.ref_id = albums.id

有效...

$query = "SELECT updates.*, albums.title FROM updates ";
$query .= "LEFT JOIN albums ON updates.ref_table = 'albums' AND updates.ref_id = albums.id ";
$query .= "WHERE user_id = ".$user_id." ORDER BY date DESC";

不起作用...

$query = "SELECT updates.*, albums.title, blog.title FROM updates ";
$query .= "LEFT JOIN blog ON updates.ref_table = 'blog' AND updates.ref_id = blog.id ";
$query .= "LEFT JOIN albums ON updates.ref_table = 'albums' AND updates.ref_id = albums.id ";
$query .= "WHERE user_id = ".$user_id." ORDER BY date DESC";

最佳答案

如果结果中有多个具有相同名称的列,您将只能得到一个结果,因此重命名具有相同名称的列,您将获得所有这些列,并且它们将具有一个有意义的名称,因此您知道哪个是哪个。

$query = "SELECT updates.*, albums.title as albumtitle, blog.title as blogtitle FROM updates ";
$query .= "LEFT JOIN blog ON updates.ref_table = 'blog' AND updates.ref_id = blog.id ";
$query .= "LEFT JOIN albums ON updates.ref_table = 'albums' AND updates.ref_id = albums.id ";
$query .= "WHERE user_id = ".$user_id." ORDER BY date DESC";

关于mysql - 单个 MySQL 查询中的两个 LEFT JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437665/

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