SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi
ON pr.sub_subkategorie_id = ssi.ID

表及其重要字段
produkty - id, pozycja
przyporzadkowania - id, produkt_id, sub_kategoria_id, sub_subkategoria_id
sub_subkategorie - id, subkategorie_id, pozycja
subkategorie - id, kategorie_id, pozycja
kategorie - id, pozycja

“on子句”中的错误“#1054-未知列'pr.sub_subkategorie_id'”
试过了
SELECT p.id, pr.sub_subkategorie_id

同样的结果。
完整查询(由于上述查询失败而未测试):
SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi ON pr.sub_subkategorie_id = ssi.ID
INNER JOIN subkategorie si ON ssi.subkategorie_id = si.id
INNER JOIN kategorie c ON si.kategorie_id = c.id
WHERE stany_magazynowe.produkty_id = p.id
AND p.id = pr.produkty_id
AND pr.sub_subkategorie_id =1
AND p.widoczny = '1'
AND p.id = gk_grupy_produkty.id_produktu
AND gk_grupy_produkty.id_grupy =1
AND gk_grupy_produkty.towar_widocznosc =1
AND c.id = '1'
ORDER BY c.pozycja, si.pozycja, ssi.pozycja, p.pozycja

希望我提供了足够的信息(前面的问题-SELECT * FROM table WHERE field IN (SELECT id FROM table ORDER BY field2)
编辑:
是的,有打字错误,但只有在这里,在堆垛溢出(太多的咖啡,我的手指飞)。谢谢大家,你们救了我的一天!

最佳答案

你按错误的顺序加入表格:

SELECT p.id
FROM produkty p, stany_magazynowe, gk_grupy_produkty, przyporzadkowania pr
INNER JOIN sub_subkategorie ssi
ON pr.sub_subkategorie_id = ssi.ID

该错误是由于与逗号相比,JOIN关键字的优先级更高。这样的错误是我敦促您不要使用逗号的隐式连接语法,而是始终使用join关键字显式地编写连接的原因之一。
下面是使用显式联接重写的完整查询:
SELECT p.id
FROM produkty p
INNER JOIN przyporzadkowania pr ON p.id = pr.produkty_id
INNER JOIN stany_magazynowe ON stany_magazynowe.produkty_id = p.id
INNER JOIN gk_grupy_produkty ON p.id = gk_grupy_produkty.id_produktu
INNER JOIN sub_subkategorie ssi ON pr.sub_subkategorie_id = ssi.ID
INNER JOIN subkategorie si ON ssi.subkategorie_id = si.id
INNER JOIN kategorie c ON si.kategorie_id = c.id
WHERE pr.sub_subkategorie_id = 1
AND p.widoczny = '1'
AND gk_grupy_produkty.id_grupy =1
AND gk_grupy_produkty.towar_widocznosc =1
AND c.id = '1'
ORDER BY c.pozycja, si.pozycja, ssi.pozycja, p.pozycja

相关问题
Mixing implicit and explicit JOINs

关于mysql - 对抗INNER JOINS-章:未知专栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3611732/

10-10 03:35