Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 来自两个表的SQL查询,其中一个表中有重复的值_Php_Mysql_Sql_Join - Fatal编程技术网

Php 来自两个表的SQL查询,其中一个表中有重复的值

Php 来自两个表的SQL查询,其中一个表中有重复的值,php,mysql,sql,join,Php,Mysql,Sql,Join,有点背景。我正在构建一个拍卖商项目(PHP/MySQL),其中有未知数量的图像要上传。要上传的图像数量由用户根据可用照片数量定义。把它们上传到网上没有问题。我可以在表格中看到所有重要的信息 我有两个相关表格: 属性(柱的混合/混合) 图像(三列:图像\u id、图像\u url、图像\u条目\u id) images\u entry\u id指的是唯一的properties.property\u id。问题在于 当我上传几个图片时;有一个唯一的id,url,它们具有相同的图像\u条目\u id,

有点背景。我正在构建一个拍卖商项目(PHP/MySQL),其中有未知数量的图像要上传。要上传的图像数量由用户根据可用照片数量定义。把它们上传到网上没有问题。我可以在表格中看到所有重要的信息

我有两个相关表格:

  • 属性(柱的混合/混合)
  • 图像(三列:图像\u id、图像\u url、图像\u条目\u id)
  • images\u entry\u id指的是唯一的properties.property\u id。问题在于 当我上传几个图片时;有一个唯一的id,url,它们具有相同的图像\u条目\u id,因此我可以将它们引用到属性表。因此,当我尝试内部连接时,我会根据图像的数量从属性表中获得几个相同的输出。希望这能解释我的意思

    我的问题是:

    $sql = "SELECT * FROM properties INNER JOIN images
                    ON properties.prop_id=images.images_entry_id ORDER BY properties.prop_id DESC";
    
    因此,基本上,如果一个prop_id有三个图像,那么我从properties表中得到三个相同输出的输出!那里有什么想法吗?数据库布局是否糟糕,还是仅仅是一个简单的查询让我目瞪口呆?

    好的,这将起作用:

    $sql = "SELECT DISTINCT properties.* FROM properties 
    INNER JOIN images ON (properties.prop_id=images.images_entry_id) 
    ORDER BY properties.prop_id DESC";
    
    还是这个

    $sql = "SELECT properties.* FROM properties 
    WHERE EXISTS (SELECT * FROM images WHERE properties.prop_id=images.images_entry_id) 
    ORDER BY properties.prop_id DESC";
    

    您的预期结果不会来自对联接表的单个查询,您需要独立地查询每个表。

    那么您希望从查询中得到什么?我希望在从images表输出任何相关图像的同时,从properties表中输出一个实例。链接是properties表中唯一的prop\u id和images表中的images\u entry\u id。那么您最好将其作为两个单独的查询来执行。如果我不理解你的意思,你能发布一些示例数据和输出吗?谢谢,我怎么能分别查询这两个数据并将输出结果放在一起?group by suggestion将其限制为一个属性输出,但每次查询只能输出一个图像?如果我坚持这样的foreach循环:foreach($q as$result){echo“images_url.'/>“;}我只得到一个图像,但是有多个图像。感谢您花时间。我在上面两个代码中都遇到了此错误:注意:未定义属性:stdClass::$images\u url in…与查询无关。它与您的代码相关。搜索并查找$images\u url的位置我认为必须有两个单独的查询。是否有一个particu我怎样才能将两个查询协调成一个输出?谢谢。我不知道,至少不直接知道。你可以添加一个中间步骤,在PHP中将它们结合起来,但仍然需要运行两个查询并分别返回到PHP才能这样做。我将试一试。无论如何,谢谢