我有两个要从中获取信息的表。
可以说table1具有以下列(id,标题,类别,sub_category,sub_sub_category)
可以说table2具有以下列(category_id,category_name)
到目前为止,我有一条select语句如下:
SELECT
table1.id,
table1.title,
table2.category_name as Cat1,
table2.category_name as Cat2,
table2.category_name as Cat3
FROM
table1,
table2
INNER JOIN table2 as c1 ON c1.category_id = table1.category
INNER JOIN table2 as c2 ON c2.category_id = table1.sub_category
INNER JOIN table2 as c3 ON c3.category_id = table1.sub_sub_category
WHERE
table1.id = ?
这给我关于table1.category是未知列的错误
我也尝试过
SELECT
table1.id,
table1.title,
table2.category_name as Cat1,
table2.category_name as Cat2,
table2.category_name as Cat3
FROM
table1,
table2
WHERE table1.id = ?
AND table1.category = table2.category_id
AND table1.sub_category = table2.category_id
AND table1.sub_sub_category = table2.category_id
最后一个示例至少为我提供了我正在寻找的列输出
(table1.id,table1.title,table1.category名称,table1.sub_category名称...)
因此,显示表2中的类别名称而不是ID。我是一名业余编码员,以前没有使用内部联接的方法,但是也许这是我需要做的。我只是不知道如何获取它来输出所需的数据。
预先感谢您的时间和考虑。
您的问题是该from
子句中有逗号。简单规则:切勿在from
子句中使用逗号。始终使用显式join
语法。
然后,您还table2
提到了额外的时间,并且您select
正在从错误的实例提取列table2
。
固定查询如下所示:
SELECT t1.id, t1.title,
c1.category_name as Cat1, c2.category_name as Cat2,
c3.category_name as Cat3
FROM table1 t1 INNER JOIN
table2 c1
ON c1.category_id = t1.category INNER JOIN
table2 c2
ON c2.category_id = t1.sub_category INNER JOIN
table2 c3
ON c3.category_id = t1.sub_sub_category
WHERE t1.id = ?;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句