我想在php页面的查询中使用内部联接和顺序。
我的查询:
select
*
from
table1
inner join
table1category
on table1.table1category_id = table1category.id
order by updateDate desc;
'updateDate'用于表1 =>错误:order子句中的列'updateDate'不明确
答案 0 :(得分:7)
order子句中的“ updateDate”列不明确
意味着您要使用的两个表中都存在updateDate。 如果要使用此字段进行订购,则必须指定要从哪个表订购。
例如:
SELECT
*
FROM table1
INNER JOIN table1category
ON table1.table1category_id = table1category.id
ORDER BY table1.updateDate DESC;
另外,请考虑在 SELECT 和 JOINS 上使用*
将从所有包含的表中获取所有列。
答案 1 :(得分:5)
当两个表中有相同的列时,您必须使用该列指定表名
SELECT
*
FROM table1
INNER JOIN table1category
ON table1.table1category_id = table1category.id
ORDER BY table1.updateDate DESC;
答案 2 :(得分:4)
这是因为updateDate
同时存在于表table1和table1类别中
SELECT
*
FROM table1 t
INNER JOIN table1category tc
ON t.table1category_id = tc.id
ORDER BY t.updateDate DESC;
答案 3 :(得分:2)
您必须说出要用于此字段的表(在两个表中都存在):
select *
from table1
inner join table1category on table1.table1category_id = table1category.id
order by XXX.updateDate desc;
用table1或table1类别替换XXX。
您也可以在表上设置别名,例如:
select *
from table1 as myalias1
inner join table1category as myalias2 on table1.table1category_id = table1category.id
order by XXX.updateDate desc;
然后用myalias1或2替换XXX。
您可以对选择数据进行相同的操作(例如):
SELECT table1.id AS id, table2.id AS categoryId
答案 4 :(得分:2)
order子句中的列updateDate
不明确
尝试一下
SELECT
*
FROM table1 t1
INNER JOIN table1category t2
ON t1.table1category_id = t2.id
ORDER BY t1.updateDate DESC;
答案 5 :(得分:2)
我发现使用别名通常会使连接更容易
SELECT
*
FROM table1 AS alias1
INNER JOIN table1category AS alias2
ON alias1.table1category_id = alias2.id
ORDER BY alias1.updateDate DESC;
答案 6 :(得分:1)
您缺少表名
SELECT
*
FROM table1
INNER JOIN table1category
ON table1.table1category_id = table1category.id
ORDER BY table1.updateDate DESC;
答案 7 :(得分:0)
SELECT *, table1.updateDate as "Table1 Update Date"
FROM table1
INNER JOIN table1category ON table1.table1category_id = table1category.id
ORDER BY table1.updateDate DESC;
或者您可以在ORDER BY子句中保留别名
SELECT *, table1.updateDate as "Table1 Update Date"
FROM table1
INNER JOIN table1category ON table1.table1category_id = table1category.id
ORDER BY "Table1 Update Date" DESC;
注意 始终以大写形式使用关键字 最好在SELECT CLAUSE中使用别名以更好地理解,否则会在 updateDate 中添加1,即 updateDate1 。 始终对相同的列名使用别名 不要使用所有列,即*,仅获取必需的列
答案 8 :(得分:0)
选择 * 从 表1 T 内部联接 表1类别C 在T.table1category_id = C.id 通过T.updateDate desc排序;