0

カテゴリ名も取得したい。私は次の表を持っています

製品表

mysql> describe prod;
+----------+-----------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra          |
+----------+-----------------+------+-----+---------+----------------+
| pid      | int(4) unsigned | NO   | PRI | NULL    | auto_increment |
| pro_name | varchar(32)     | NO   |     | NULL    |                |
+----------+-----------------+------+-----+---------+----------------+

カテゴリー表

mysql> describe cat;
+----------+-----------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra          |
+----------+-----------------+------+-----+---------+----------------+
| cid      | int(4) unsigned | NO   | PRI | NULL    | auto_increment |
| cat_name | varchar(32)     | NO   |     | NULL    |                |
+----------+-----------------+------+-----+---------+----------------+

cat_pro表 [関係表]

mysql> describe cat_pro;
+----------+-----------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra          |
+----------+-----------------+------+-----+---------+----------------+
| cat_id   | int(4) unsigned | NO   |     | NULL    |                |
| pro_id   | int(4) unsigned | NO   |     | NULL    |                |
+----------+-----------------+------+-----+---------+----------------+

の電流 Query:-

mysql> select pid, pro_name, cat_pro.cat_id 
       from prod 
       left join cat_pro on cat_pro.pro_id=prod.pid 
       where pid='2';

しかし、このコマンドを実行すると、次のエラーが表示されますunknown column cat_pro.cat_id in on clause

mysql> select pid, pro_name, cat_pro.cat_id, cat.cat_name 
       from prod 
       left join cat_pro on cat_pro.pro_id=prod.pid 
       left join cat on cat.cid=cat_pro.cat_id 
       where pid='2'

tableからもカテゴリ名を取得する方法はありますか? 、またはテーブルからカテゴリ名を取得するためcatに別のものを実行する必要がありますか。querycat

ありがとう

4

3 に答える 3

1

クエリ:

select pid, pro_name, cat_pro.cat_id, cat.cat_name
from
prod
    inner join
cat_pro
    on (cat_pro.pro_id = prod.pid)
    inner join
cat
    on (cat.cid = cat_pro.cat_id)
where pid='2';

指定したデータベース構造に対してエラーなしで動作します

于 2013-10-15T05:56:12.737 に答える
0

これがお役に立てば幸いです。以下のクエリでは、サブクエリを使用して、category_id に基づいてカテゴリ名を取得しています。

 select 
 prod.pid, 
 prod.pro_name, 
 cat_pro.cat_id,
 (
    select 
        cat_name
    from 
        Category c
    where 
        c.cid = cat_pro.cat_id

 ) as category_name

 from 
 prod left join 
 cat_pro on cat_pro.pro_id=prod.pid 
 where prod.pid='2';
于 2013-10-15T06:01:27.143 に答える