すべてを単一引用符で囲んでいる理由がわかりません。単一引用符は静的な文字列値と見なされるため、列からデータが返されません。
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`