繁体   English   中英

从MySQL中的4个表中选择数据

[英]SELECT data from 4 tables in MySQL

我对MySQL语句有疑问:

  SELECT 
      oxarticles.OXTITLE AS TITLE, 
      oxmanufacturers.OXTITLE_1 AS OXMANTITLE,
      oxarticles.OXDISTEAN AS OXDISTEAN,
      oxarticles.OXMPN AS MPN,
      oxarticles.OXPRICE AS OXPRICE,
      oxarticles.OXSTOCK AS OXSTOCK, 
      oxarticles.OXARTNUM AS OXARTNUM, 
      oxseo.OXSEOURL AS OXSEOURL, 
      oxartextends.OXLONGDESC_1 AS OXLONGDESC 
  FROM `oxarticles` 
    INNER JOIN `oxartextends` ON oxarticles.OXID = oxartextends.OXID 
    INNER JOIN `oxmanufacturers` ON oxarticles.OXID = oxmanufacturers.OXID 
    INNER JOIN `oxseo` ON oxarticles.OXID = oxseo.OXOBJECTID;

我的问题是表oxarticlesoxmanufacturers具有两个相同的列名OXIDOXTITLE_1但是上面的代码不起作用。 请帮忙。

您正在尝试将商品ID与制造商ID相匹配。 错了 您需要使用制造商ID(而不是商品ID)将商品表加入制造商表。

在您的情况下, oxarticles.OXMANUFACTURERID表中的制造商ID是oxarticles.OXMANUFACTURERID ,制造商表中的是oxmanufacturers.OXID

SELECT 
      oxarticles.OXTITLE AS TITLE, 
      oxmanufacturers.OXTITLE_1 AS OXMANTITLE,
      oxarticles.OXDISTEAN AS OXDISTEAN,
      oxarticles.OXMPN AS MPN,
      oxarticles.OXPRICE AS OXPRICE,
      oxarticles.OXSTOCK AS OXSTOCK, 
      oxarticles.OXARTNUM AS OXARTNUM, 
      oxseo.OXSEOURL AS OXSEOURL, 
      oxartextends.OXLONGDESC_1 AS OXLONGDESC 
  FROM `oxarticles` 
    INNER JOIN `oxartextends` 
      ON oxarticles.OXID = oxartextends.OXID 
    INNER JOIN `oxmanufacturers` 
      ON oxarticles.OXMANUFACTURERID = oxmanufacturers.OXID 
--                                             ^^^
--                                             Here's the manufacturer id 
--                                             in the article table

    INNER JOIN `oxseo` 
      ON oxarticles.OXID = oxseo.OXOBJECTID;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM