将左连接更改为基本连接

发布于 2024-09-16 13:38:21 字数 560 浏览 10 评论 0原文

我目前有一些 SQL 应该返回 3 行数据,但返回 6 行(3 行重复两次)。

我相信这取决于我的语法,并且想要尝试使用基本连接构建查询,目前 SQL 看起来像这样,

`function getMultiContentById($id) {
    $query = "SELECT
    FROM `mailers`
    LEFT JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id`
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id`
    WHERE `mailers`.`id` = $id"
    $result = runSelectArray($query, __FUNCTION__);
    return $result;
}`

我想使用这样的东西

`WHERE `mailer_content`.id = `mailers.id`

I currently have some SQL that should return 3 rows of data but returns 6 (3 rows repeated twice).

I believe this is down to my syntax and want to try and build the query using basic joins, currently the SQL looks like this,

`function getMultiContentById($id) {
    $query = "SELECT
    FROM `mailers`
    LEFT JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id`
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id`
    WHERE `mailers`.`id` = $id"
    $result = runSelectArray($query, __FUNCTION__);
    return $result;
}`

I want to use something like this

`WHERE `mailer_content`.id = `mailers.id`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白云悠悠 2024-09-23 13:38:21

只需在第一次加入时将 LEFT 更改为 INNER,如

$query = "SELECT 
    FROM `mailers` 
    INNER JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id` 
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id` 
    WHERE `mailers`.`id` = $id" 
    $result = runSelectArray($query, __FUNCTION__); 
    return $result; 

“共享并享受”中所示。

Just change the LEFT to INNER on the first join, as in

$query = "SELECT 
    FROM `mailers` 
    INNER JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id` 
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id` 
    WHERE `mailers`.`id` = $id" 
    $result = runSelectArray($query, __FUNCTION__); 
    return $result; 

Share and enjoy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文