2

我正在尝试从客户端表中选择一些用户数据,并从另一个表中选择一些自定义字段值。我的问题似乎是循环遍历结果。我不断在每个自定义值字段中获取重复的客户端行。

这是从不同的表中获取客户端地址详细信息和每个客户端的正确值的 SQL 查询tblcustomfieldvalues

SELECT
   tblhosting.userid,
   tblclients.id,
   tblclients.firstname,
   tblclients.city,
   tblclients.state,
   tblclients.country,
   tblclients.postcode,
   tblclients.companyname,
   tblclients.ip,
   tblcustomfields.id,
   tblcustomfields.fieldname,
   tblcustomfieldsvalues.fieldid,
   tblcustomfieldsvalues.value 
FROM tblhosting,tblclients,tblcustomfields,tblcustomfieldsvalues
WHERE tblclients.id IS NOT NULL 
AND tblclients.id = tblhosting.userid 
AND tblcustomfields.id=tblcustomfieldsvalues.fieldid 
AND tblcustomfieldsvalues.relid=tblhosting.id
AND tblcustomfieldsvalues.fieldid between 291 and 292

我的问题是如何从tblcustomfieldsvalues每个客户端和tblclients地址等获取两行值。

我尝试拆分查询并使用 while 和 forech 循环,但不断从客户端表中获取重复值。或每个客户只有一个自定义字段值。

4

1 回答 1

0

"SELECT tblhosting.userid,tblclients.id,tblclients.firstname,tblclients.city,tblclients.state,tblclients.country,tblclients.postcode,tblclients.companyname,tblclients.ip,tblcustomfields.id,tblcustomfields.fieldname,tblcustomfieldsvalues.fieldid, tblcustomfieldsvalues.value FROM tblhosting,tblclients,tblcustomfields,tblcustomfieldsvalues"

你的代码看起来很可怕。这对于不了解您的结构的人来说是不可读的。您应该使用同义词和“加入”关键字在表之间进行获取。


@edit 现在看起来不错。

于 2012-11-04T01:57:29.220 回答