Jos*_*osh 0 php mysql sql codeigniter
目前我有两张桌子,products而且options.
产品包含
选项包含
样本数据可能是:
Products
id:1
标题:'test'
描述:'我的描述'
Options
id:1
product_id:1
sku:1001
title:'red'
id:2
product_id:1
sku:1002
title:'blue'
我需要显示每个项目,每个不同的选项.此刻,我选择行products并迭代它们,并为每个行选择适当的行options.然后我创建一个数组,类似于:
[product_title] = 'test';
[description] = 'my description';
[options][] = 1, 1001, 'red';
[options][] = 2, 1002, 'blue';
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法只使用sql(我使用codeigniter,并且理想情况下喜欢使用Active Record类)?
从...开始
SELECT * FROM products INNER JOIN options ON product.id = options.product_id
Run Code Online (Sandbox Code Playgroud)
并从那里工作.
该示例仅适用于至少有一个选项可用的产品(这是您的设计所要求的,否则您没有SKU的位置).但是,如果某些产品根本没有任何选项,您需要:
SELECT * FROM products LEFT JOIN options ON product.id = options.product_id
Run Code Online (Sandbox Code Playgroud)
最后,列出要返回的实际列而不是SELECT*是一种很好的做法.