php - SQL Join Ads with their Fields 将字段显示为列

标签 php mysql sql join

我有一个 Ads 表和一个 Ads_field 表,当我加入时,我会得到一个广告的多行,因为它们有多个字段

有没有办法将字段显示为列?

SELECT Ads.CITY_ID,Ads.PRICE,Ads.CREATED_DATE,Ads.HAS_IMAGES, 
 Ads.TITLE, Ads.DESCRIPTION, loc_cities.name as city, CATEGORY.NAME as           
 category_name, loc_countries.country_name as 
 country,Ads_fields.field_value
 FROM Ads
 INNER JOIN loc_cities ON Ads.CITY_ID=loc_cities.id
 INNER JOIN CATEGORY ON Ads.CATEGORY_ID=CATEGORY.ID 
 INNER JOIN loc_countries ON Ads.country_code=loc_countries.ID 
 INNER JOIN Ads_fields ON Ads.ID=Ads_fields.ad_id
    WHERE CONVERT(Ads.TITLE USING utf8) LIKE '%reqqa%' 
 or CONVERT(Ads.DESCRIPTION USING utf8) LIKE '%reqqa%'
 or CONVERT(loc_cities.name USING utf8) LIKE '%reqqa%'
 or CONVERT(loc_countries.country_name USING utf8) LIKE '%reqqa%'
 or CONVERT(CATEGORY.name USING utf8) LIKE '%reqqa%'
 LIMIT 50

database table

最佳答案

一种简单的方法是将 field_value 显示为逗号分隔的字符串

  SELECT 
      Ads.CITY_ID,Ads.PRICE
      , Ads.CREATED_DATE,Ads.HAS_IMAGES
      , Ads.TITLE
      , Ads.DESCRIPTION
      , loc_cities.name as city
      , CATEGORY.NAME as  category_name
      , loc_countries.country_name as country 
      , group_concat(Ads_fields.field_value)
   FROM Ads
   INNER JOIN loc_cities ON Ads.CITY_ID=loc_cities.id
   INNER JOIN CATEGORY ON Ads.CATEGORY_ID=CATEGORY.ID 
   INNER JOIN loc_countries ON Ads.country_code=loc_countries.ID 
   INNER JOIN Ads_fields ON Ads.ID=Ads_fields.ad_id
      WHERE CONVERT(Ads.TITLE USING utf8) LIKE '%reqqa%' 
   or CONVERT(Ads.DESCRIPTION USING utf8) LIKE '%reqqa%'
   or CONVERT(loc_cities.name USING utf8) LIKE '%reqqa%'
   or CONVERT(loc_countries.country_name USING utf8) LIKE '%reqqa%'
   or CONVERT(CATEGORY.name USING utf8) LIKE '%reqqa%'
   GROUP BY  Ads.CITY_ID,Ads.PRICE
      , Ads.CREATED_DATE,Ads.HAS_IMAGES
      , Ads.TITLE
      , Ads.DESCRIPTION
      , loc_cities.name 
      , CATEGORY.NAME 
      , loc_countries.country_name 
   LIMIT 50

关于php - SQL Join Ads with their Fields 将字段显示为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529614/

相关文章:

mysql - SQL 中 bool 型与整数的最佳实践

sql - 简单的选择技巧

mysql - SQL:查询语法错误

php - Laravel 5.5 和 Sentinel 缺少必需的参数

php - Codeigniter 3 自动加载 Controller

php - 如果数组包含文本值,则将它们添加到数据库 MYSQL

php - 插入不需要的行 PDO

mysql - 无法隔离 Scala 批量数据加载应用程序中的 JDBC 内存泄漏

php - Laravel 多个 where 条件在 whereHas 回调

php - 存储 HABTM 协会中持有的项目的排序顺序 - CakePHP