我有三张桌子:
首先由基本项目(表名:ITEMS)
组成| id | picture_id | name | other_columns |
第二个由基本元素的属性(表名:ITEM_PROP)
组成| id | item_id | prop_id | prop_value |
第三个包含有关文件的信息(表名:FILES)
| id | type | subdir | file_name |
我已经构建了一个查询:
SELECT items.id, item.name, item_prop.prop_value, files.subdir,file.file_name
FROM items LEFT JOIN items_prop
ON items.id = item_prop.item_id
LEFT JOIN FILES
on item_prop.prop_value = files.id WHERE item_prop.prop_id = 2
ORDER BY items.id
这将是与每个项目链接的文件列表。
| id |名字| prop_value | subdir | file_name |
| 1 |项目#1 | 2 | ' RES / aeb342' | ' item_pic1.jpg' |
问题:是否可以在prop_value列中添加items.picture_id并在其他两列中与其相关联?
示例:SQL Fiddle
我想在一个查询中选择带有文件数据的items.picture_id。 有人这样想:
SELECT
items.id, items.name,
item_prop.prop_value,
files.subdir, files.file_name
FROM items
LEFT JOIN item_prop ON items.id = item_prop.item_id
LEFT JOIN files ON item_prop.prop_value = files.id
UNION
SELECT
items.id, items.name, items.picture_id,
files.subdir, files.file_name
FROM items
LEFT JOIN files ON items.picture_id = files.id