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
JOIN nmc_category
ON 'nmc_cd.catID'='nmc_category.catID'
ORDER BY CDTitle

このクエリを mySQL に入れて、ncm_CD と nmc_category からの結果を含むテーブルを取得しようとしましたが、値が返されませんか?? また、右結合または左結合を使用すると、列名が返されます (例: nmc_cd.CDJD)

4

2 に答える 2

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が言及しているように、実際に基準に一致するデータがあることを確認してください:)

于 2012-11-08T16:31:38.057 に答える
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`
于 2012-11-08T16:32:29.160 に答える