SELECT 'nmc_cd.CDID','nmc_cd.CDTitle', 'nmc_cd.CDYear','nmc_cd.pubID','nmc_cd.catID','nmc_cd.CDPrice','nmc_category.catDesc'
From nmc_cd
JOIN nmc_category
ON 'nmc_cd.catID'='nmc_category.catID'
ORDER BY CDTitle
我一直把这个查询放到mySQL中试图找到一个包含ncm_CD和nmc_category结果的表但是它一直没有重新调整值?如果我使用右连接或左连接,它将返回列名称(例如nmc_cd.CDJD)
答案 0 :(得分:3)
尝试删除引号,以便引用列本身 - 使用引号,您正在使用字符串而不是列。
SELECT nmc_cd.CDID, nmc_cd.CDTitle, nmc_cd.CDYear, nmc_cd.pubID, nmc_cd.catID, nmc_cd.CDPrice, nmc_category.catDesc
From nmc_cd
JOIN nmc_category
ON nmc_cd.catID = nmc_category.catID
ORDER BY CDTitle
另外,正如@Randy所提到的,请确保您确实拥有符合条件的数据:)
答案 1 :(得分:2)
我不确定为什么你的所有内容都有单引号,单引号被认为是静态字符串值,所以它不会从列中返回数据:
SELECT nmc_cd.CDID,
nmc_cd.CDTitle,
nmc_cd.CDYear,
nmc_cd.pubID,
nmc_cd.catID,
nmc_cd.CDPrice,
nmc_category.catDesc
From nmc_cd
INNER JOIN nmc_category
ON nmc_cd.catID=nmc_category.catID
ORDER BY CDTitle
但是使用您正在使用的INNER JOIN
,您必须确保您具有与两个表中的数据匹配的值,否则将不返回任何数据。如果两个表中都没有数据,那么您需要使用LEFT JOIN
或RIGHT JOIN
:
SELECT nmc_cd.CDID,
nmc_cd.CDTitle,
nmc_cd.CDYear,
nmc_cd.pubID,
nmc_cd.catID,
nmc_cd.CDPrice,
nmc_category.catDesc
From nmc_cd
LEFT JOIN nmc_category
ON nmc_cd.catID=nmc_category.catID
ORDER BY CDTitle
MySQL使用围绕列和表名称的反引号而非单引号,如果您应用它们,那么您的查询将如下所示:
SELECT `nmc_cd`.`CDID`,
`nmc_cd`.`CDTitle`,
`nmc_cd`.`CDYear`,
`nmc_cd`.`pubID`,
`nmc_cd`.`catID`,
`nmc_cd`.`CDPrice`,
`nmc_category`.`catDesc`
From `nmc_cd`
JOIN `nmc_category`
ON `nmc_cd`.`catID`=`nmc_category`.`catID`
ORDER BY `CDTitle`