一点背景。我正在建立一个拍卖师项目(PHP / MySQL),其中有大量图像需要上传。要上载的图像量由用户根据可用照片的数量来定义。在线上传它们没有问题。我可以在表格中看到所有重要的信息。
我有两个相关的表格:
images_entry_id指的是唯一的properties.property_id。问题在于 当我上传几张图片;有一个唯一的id,url,它们有相同的images_entry_id,所以我可以将它们引用到Properties表中。因此,当我尝试内连接时,我会从属性表中获得几个相同的输出,具体取决于图像的数量。希望这能解释我的意思吗?
我的查询:
$sql = "SELECT * FROM properties INNER JOIN images
ON properties.prop_id=images.images_entry_id ORDER BY properties.prop_id DESC";
所以基本上,如果一个prop_id有三个图像,那么我从属性表中得到三个相同输出的输出!那里!有任何想法吗?数据库布局是否很差,或者只是一个简单的查询,让我盯着我看?
答案 0 :(得分:0)
好的,这将有效:
$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";
答案 1 :(得分:0)
您的预期结果不会来自对连接表的单个查询,您需要独立查询每个表。