可以说我有一个table1:
id name ------------- 1 "one" 2 "two" 3 "three"
id tbl1_fk option value ------------------------------- 1 1 1 1 2 2 1 1 3 1 2 1 4 3 2 1
现在我想作为查询结果:
table1.id | table1.name | option | value ------------------------------------- 1 "one" 1 1 2 "two" 1 1 3 "three" 1 "one" 2 1 2 "two" 3 "three" 2 1
我如何实现这一目标?
我已经尝试过:
SELECT table1.id,table1.name,table2.option,table2.value FROM table1 AS table1 LEFT outer JOIN table2 AS table2 ON table1.id = table2.tbl1fk
但结果似乎省略了空值:
1 "one" 1 1 2 "two" 1 1 1 "one" 2 1 3 "three" 2 1
解决:感谢Mahmoud Gamal :(加上GROUP BY)
解决了这个问题
SELECT t1.id,t1.name,t2.option,t2.value FROM ( SELECT t1.id,t2.option FROM table1 AS t1 CROSS JOIN table2 AS t2 ) AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.tbl1fk AND t1.option = t2.option group by t1.id,t2.value ORDER BY t1.id,t1.name
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。