【发布时间】:2010-11-19 14:28:20
【问题描述】:
我在查询时遇到问题,问题是我从同一个表中加入了 3 次。
有问题的查询是这样的:
SELECT
o.order_id,
n.title,
c.first_name,
tdv5.tid,
tdv6.name,
tdv8.name AS settlement_month
FROM orders o
join products p on o.product_id = p.nid
join node n on p.nid = n.nid
join customers c on o.customer_email = c.customer_email
join term_node tn on tn.nid = p.nid
join term_data tdv6 on tn.tid = tdv6.tid AND tdv6.vid = 6
left join term_data tdv5 on tn.tid = tdv5.tid AND tdv5.vid = 5
left join term_data tdv8 on tn.tid = tdv8.tid AND tdv8.vid = 8
当我使用这个查询时,只有使用 tn.tid 的第一个 JOIN 才能工作。例如,如果最后三个中唯一的连接是这样的:
join term_data tdv6 on tn.tid = tdv6.tid AND tdv6.vid = 6
它会正常工作的。与
相同left join term_data tdv5 on tn.tid = tdv5.tid AND tdv5.vid = 5
还有
left join term_data tdv8 on tn.tid = tdv8.tid AND tdv8.vid = 8
但是,当我将它们结合起来时,它们根本不起作用。当我结合这三个查询时,只有 tdv6 有效。
您对哪里出了问题有什么建议吗?谢谢。
【问题讨论】: