php - Mysql内连接返回重复结果

标签 php mysql

我正在尝试从 mysql 数据库中提取一个字符。字符表有 6 列,链接到项目表中的外部项目 id,我需要链接每个项目以获取项目 id、名称和外部图像 id,然后我需要将该外部图像 id 链接到我的图像表。并拉取图像网址。我在下面编写的代码为我提供了重复的图像网址。有谁知道这是怎么回事吗?

这是我的结果。图片网址不断重复。我把project_users拿出来测试一下,同样的事情发生了,现在没有使用,但将来会使用。

我做了一个sqlfiddle,但看起来它在这里工作正常http://sqlfiddle.com/#!2/7896e/8

    Array ( [name] => test1241 [0] => test1241 [gender] => [1] => [left_arm] => Images/Items/leftArm.png [2] =>
 Images/Items/leftArm.png [legs] => Images/Items/legs.png [3] => Images/Items/legs.png [torso] => 
Images/Items/torso.png [4] => Images/Items/torso.png [head] => Images/Items/head.png [5] => Images/Items/head.png [hair] => Images/Items/hair.png [6] => Images/Items/hair.png [right_arm] => Images/Items/rightArm.png [7] => Images/Items/rightArm.png )

   $sql = "SELECT
            pc.project_characters_name as name,
            pc.project_characters_gender as gender,
            pia1.project_images_url as left_arm,
            pia2.project_images_url as legs,
            pia3.project_images_url as torso,
            pia4.project_images_url as head,
            pia5.project_images_url as hair,
            pia6.project_images_url as right_arm

            FROM project_characters AS pc
            INNER JOIN project_users AS pu ON pc.fk_project_users_id = pu.project_users_id
            INNER JOIN project_items AS pi1 ON pc.project_characters_left_arm = pi1.project_items_id
            INNER JOIN project_items AS pi2 ON pc.project_characters_legs = pi2.project_items_id
            INNER JOIN project_items AS pi3 ON pc.project_characters_torso = pi3.project_items_id
            INNER JOIN project_items AS pi4 ON pc.project_characters_head = pi4.project_items_id
            INNER JOIN project_items AS pi5 ON pc.project_characters_hair = pi5.project_items_id
            INNER JOIN project_items AS pi6 ON pc.project_characters_right_arm = pi6.project_items_id
            INNER JOIN project_images AS pia1 ON pi1.fk_project_images_id = pia1.project_images_id
            INNER JOIN project_images AS pia2 ON pi2.fk_project_images_id = pia2.project_images_id
            INNER JOIN project_images AS pia3 ON pi3.fk_project_images_id = pia3.project_images_id
            INNER JOIN project_images AS pia4 ON pi4.fk_project_images_id = pia4.project_images_id
            INNER JOIN project_images AS pia5 ON pi5.fk_project_images_id = pia5.project_images_id
            INNER JOIN project_images AS pia6 ON pi6.fk_project_images_id = pia6.project_images_id
            WHERE pc.project_characters_name=:name LIMIT 1";

最佳答案

您可以尝试使用关键字DISTINCT 仅选择不同的结果。

示例:

SELECT DISTINCT yourField FROM tables;

关于php - Mysql内连接返回重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827623/

相关文章:

php - 从 WooCommerce 中的面包屑中删除 "Shop"

MySQL:在查询中查找相对值

mysql - 从字符串 MYSQL 中删除多个尾随和前导关键字

php - Laravel 关系 1-2-1

php - Laravel 如何返回具有最高值的整个项目数据

javascript - Next Div 左右浮动两个div后显示不正确

php mysql 在从数组插入 SQL 时添加正斜杠

mysql - 在mySQL中撤销用户的权限

php - 如何多次更新一个字段?

php - MySQL 选择并锁定以便使用 PHP 进行更新