我有一张表格,其中包含有关多个住宅物业的详细信息。 表中只有4个列,如下所示。
ID =唯一标识符
tmplvarid =有点像记录类型的代码。即地址,价格, 状态,图像等....(可能有20种不同的记录类型)
Contentid =用于对属于同一媒体资源的记录进行分组。
值 =记录的实际详细信息。
我需要做的是选择一些字段来记录状态为“已售出”的属性。如果我可以加入两个包含相关信息的表格,但信息全部在一个表格中,那对我来说是有意义的。
我可以看到这个数据结构可以很容易地为应用程序添加一个新字段,而不需要更改表格,但我仍然坚持如何查询表格以返回相关信息。
指向正确方向的任何指针?
由于 大卫。
EDIT 以下是与一个属性相关的所有记录的示例。显然,有许多属性具有不同的属性id。 (示例属性ID 183)
作为示例,我想为所有属性选择街道号(varid = 34),街道名称(varid = 39)和图像名称(varid = 36)已经“已售出”(varid = 106)< / p>
我希望我的问题现在更有意义。
PS我确实试图研究这个问题,但我的SQL尝试不值得发布。 我考虑过嵌套的Select语句或将表链接到自身。我也寻找其他人解决了类似的问题,但没有找到任何人。
Expected Output
3758 34 183 2/150
3759 39 183 SMITH STREET
3779 36 183 [{"MIGX_id":1,"ImageID":"1","FileName":"00686_01.jpg","ImageSrc":"assets\/images\/properties\/00686_01.jpg","AltImage":"00686_01.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"},{"MIGX_id":2,"ImageID":"2","FileName":"00686_02.jpg","ImageSrc":"assets\/images\/properties\/00686_02.jpg","AltImage":"00686_02.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"},{"MIGX_id":3,"ImageID":"3","FileName":"00686_03.jpg","ImageSrc":"assets\/images\/properties\/00686_03.jpg","AltImage":"00686_03.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"
=============================================== ======================
id varid contid value
3756 32 183 686
3757 33 183 Rent
3758 34 183 2/150
3759 39 183 SMITH STREET
3760 40 183 FAIR FEILD
3761 41 183 2165
3762 42 183 NSW
3763 51 183 Residential
3764 52 183 Unit
3765 61 183 300
3766 62 183 W1
3767 63 183 2015-1-6 ::
3768 66 183 Yes
3769 110 183 18
3770 106 183 Sold
3771 107 183 2015-1-20 10:27:25
3772 35 183 2
3773 76 183 1
3774 79 183 1
3775 95 183 1
3776 96 183 Communal
3777 104 183 1
3778 105 183 1
3779 36 183 [{"MIGX_id":1,"ImageID":"1","FileName":"00686_01.jpg","ImageSrc":"assets\/images\/properties\/00686_01.jpg","AltImage":"00686_01.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"},{"MIGX_id":2,"ImageID":"2","FileName":"00686_02.jpg","ImageSrc":"assets\/images\/properties\/00686_02.jpg","AltImage":"00686_02.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"},{"MIGX_id":3,"ImageID":"3","FileName":"00686_03.jpg","ImageSrc":"assets\/images\/properties\/00686_03.jpg","AltImage":"00686_03.jpg","TimeModified":"26 Jul 2013 11:12:52","Format":"Photograph"}]
3780 128 183 assets/images/properties/00686_01.jpg
3781 119 183 [{"MIGX_id":1,"InspectionID":"1","InspectionDate":"Sat, 24 Jan 2015","InspectionStart":"15:30:00","InspectionEnd":"15:45:00"}]
3782 120 183 18
3783 121 183 Bob Jobbins
3784 122 183 9735 9999
3785 124 183 0406619999
3786 125 183 email@domain.com
3787 126 183 Active
3788 127 183 20 Jan 2015 10:27:25
答案 0 :(得分:1)
在一个表中显示信息没问题:您可以将表连接到自身。这样的事情应该有效:
SELECT
sold.ContentID,streetno.Value StreetNo,streetname.Value Street,imagename.Value ImageName
FROM properties sold
JOIN properties streetno ON streetno.tempvarid=34 AND streetno.ContentID=sold.ContentID
JOIN properties streetname ON streetname.tempvarid=39 AND streetname.ContentID=sold.ContentID
JOIN properties imagename ON imagename.tempvarid=36 AND imagename.ContentID=sold.ContentID
上述内容可能存在语法或类似问题。我没有时间对它进行实际测试,因为我需要得到一些具体的,但我相信这种方法可以解决你的问题。