根据同一个表中

时间:2015-06-01 07:02:39

标签: mysql

我有一张表格,其中包含有关多个住宅物业的详细信息。 表中只有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

1 个答案:

答案 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

上述内容可能存在语法或类似问题。我没有时间对它进行实际测试,因为我需要得到一些具体的,但我相信这种方法可以解决你的问题。