值得庆幸的是,我之前不必使用特别复杂的SQL查询。这是我的目标。
我有表hams
,我希望与表格eggs
交叉加入 - 也就是说,在一定程度上获取所有的ham-egg组合。
eggs
表还有一个属性how_cooked
,定义为ENUM('over-easy','scrambled','poached')
。 我想要一个结果集列出火腿和鸡蛋烹饪方法的每种可能组合,以及那样煮熟的样品鸡蛋。(我不关心哪个鸡蛋特别。)
因此,如果每个烹饪方法中有3个,每个烹饪方法有1个鸡蛋,3个鸡蛋和3个鸡蛋的3个火腿,我的结果集应该是这样的:
id
我确信我可以在这里和那里一起破解大量子查询的解决方案,但有没有优雅的方法来做到这一点?
答案 0 :(得分:2)
通过一点点思考真实的努力和谷歌搜索,我可能找到了一个很好的解决方案:
SELECT * FROM hams, eggs GROUP BY hams.id, eggs.how_cooked
似乎有效。真的那么容易吗?
答案 1 :(得分:1)
SELECT hams.id, eggs.how_cooked, eggs.id
FROM hams
CROSS JOIN eggs
这就是诀窍。 CROSS JOIN
与,
同义,但在MySQL中具有更高的优先级。