我试图找到一个特定的ID的所有孙子,但我似乎无法让我的连接正确。下面的代码有效,但是我需要从产品表中获取与其关联的产品。如何找到孙子女?
SELECT b.category_id, b.category_name, b.parent, a.parent
FROM categories AS a, categories AS b
WHERE a.category_id = b.parent AND a.parent = 119
当我尝试加入产品表我不断收到一个错误:
SELECT *
FROM products p
INNER JOIN products_categories pc
ON p.product_id = pc.product_id
INNER JOIN (
SELECT b.category_id, b.category_name, b.parent, a.parent
FROM categories AS a, categories AS b
WHERE a.category_id = b.parent AND a.parent = 119
)x
我期望的结果将是有以下几点:(注:看看我的SQL小提琴看模式在代码视图)
(76, 'BR134', 'LEA530664', 'ITEM1234', 1499.99, 'yes', 'This is a nice gun'),
(77, 'mZCXGT', 'LEA471061', 'qwer345', 89.99, 'yes', 'Testing!'),
(78, 'ert', 'LEA023991', 'asdf34', 129.99, 'yes', 'Another test to get this right!'),
(79, 'model test', 'LEA355935', 'item test', 119.99, 'yes', 'This is another test dammit!'),
(80, 'CZV1354', 'LEA741837', 'LI-1234', 1299.99, 'yes', 'This is a hipoint weapon!'),
(81, 'PINK12G', 'LEA008558', 'PINK-SHG', 89.99, 'yes', 'YEP! This is pink!'),
(82, 'BOWTECH', 'LEA762521', 'asdf', 899.99, 'yes', 'This is a test!'),
(83, 'LX32', 'LEA346903', 'MADEUP', 1499.99, 'yes', 'This is Carters gun.');
SQL小提琴:
http://sqlfiddle.com/#!2/dd66c/2
这里是我的架构:
有什么错误?有些sql引擎不喜欢select *,当你有连接和类似的语法时。应该选择p。*,pc。* – chris
模式与问题的其余部分不匹配。对于初学者来说,我甚至都不会在任何地方看到“父”字段。 –
@TomvanderWoerdt - 真实的故事,我有错误的形象...我道歉;) – Mike