加入两个工作的SQL查询会得到错误的结果 - 我哪里出错了

时间:2014-03-29 22:09:57

标签: mysql join

我有两个单独返回正确数据的查询,但是当我尝试加入它们时,返回的数据是错误的。 查询一个是:

SELECT op.orders_id, op.products_id, op.products_name, op.final_price, op.products_quantity
FROM orders_products op
WHERE op.orders_id = 21535

查询二是:

SELECT opa.products_options_values_id, opa.products_prid
FROM orders_products_attributes opa
WHERE opa.orders_id = 21535

我尝试的合并查询是:

SELECT op.orders_id, op.products_id, op.products_model, op. products_name, op.final_price, op.products_quantity, opa.products_options_values_id, opa.products_prid
FROM orders_products op
JOIN orders_products_attributes opa
ON op.orders_id = opa.orders_id
WHERE op.orders_id = 21535

小提琴在这里:http://www.sqlfiddle.com/#!8/ef9be/5

我不知道如何解决这个问题。我在opa.products_options_values_id上尝试了Group BY,但这导致了问题,因为数据结果中有40个结果。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

join条件下,您使用了orders_id。你应该像这样使用orders_products_id

SELECT op.orders_id, op.products_id, op.products_model, op. products_name,
       op.final_price, op.products_quantity, opa.products_options_values_id,
       opa.products_prid
FROM orders_products op
JOIN orders_products_attributes opa ON op.orders_products_id = opa.orders_products_id
WHERE op.orders_id = 21535