(MYSQL)在第一个表上选择1行,在第二个表中选择所有行,在最后一个表中选择1行

时间:2015-07-20 16:54:54

标签: mysql sql arrays select multiple-tables

首先发布在这里。我决定注册,因为花了几个小时寻找答案后却没有成功。

我正在处理一个问题,到目前为止,我的知识还不够好。

假设我有3张桌子:

*项目(ITEM_ID,标题,GROUP_ID)

Item_options(option_id,ITEM_ID,option_title)

Item_group(GROUP_ID,group_title)*

我想在一个单独的mysql查询中使用变量$ item_id检索数据,但是:

1 / **我想从“项目”中仅返回**行

来自“Item_options” 2 /所有行 链接到来自商品的“item_id”

3 / 来自Item_group 的1行链接到“项目”表格中的group_id。

到目前为止,这是我的查询:

"SELECT * FROM Items as A LEFT JOIN Items_options AS B ON A.item_id=B.item_id LEFT JOIN Item_group AS C ON A.group_id=C.group_id WHERE A.item_id = '$item_id'"

它返回此(包含4个数组的数组,因为item_options中有4个相关行):

Array(

Array 0:

A.item_id (1), A.item_title (mybox), **B.option_id (1), B.item_id (1), B.option_title (myphoto1)**, C.group_id (1), C.group_title (myvacation)

Array 1:

A.item_id (1), A.item_title (mybox), **B.option_id (2), B.item_id (1), B.option_title (myphoto2)**, C.group_id (1), C.group_title (myvacation)

Array 2:

A.item_id (1), A.item_title (mybox), **B.option_id (3), B.item_id (1), B.option_title (myphoto3)**, C.group_id (1), C.group_title (myvacation)

Array 4:

A.item_id (1), A.item_title (mybox), **B.option_id (4), B.item_id (1), B.option_title (myphoto4)**, C.group_id (1), C.group_title (myvacation)

)

但我不想要这个!我想要:

Array(

Array 0:

A.item_id (1), A.item_title (mybox), **B.option_id (1), B.item_id (1), B.option_title (myphoto1)**, C.group_id (1), C.group_title (myvacation)

Array 1:

NULL, NULL, **B.option_id (2),** **B.item_id (1), B.option_title (myphoto2)**, NULL, NULL

Array 2:

NULL, NULL, **B.option_id (3),** **B.item_id (1), B.option_title (myphoto3)**, NULL, NULL

Array 3:

NULL, NULL, **B.option_id (4), B.item_id (1), B.option_title (myphoto4)**, NULL, NULL

)

甚至可以这样做:

Array(

Array 0:

A.item_id (1), A.item_title (mybox), **B.option_id (1), B.item_id (1), B.option_title (myphoto1)**, C.group_id (1), C.group_title (myvacation)

Array 1:

A.item_id (NULL), A.item_title (NULL), **B.option_id (2), B.item_id (1), B.option_title (myphoto2)**, C.group_id (NULL), C.group_title (NULL)

Array 2:

A.item_id (NULL), A.item_title (NULL), **B.option_id (3), B.item_id (1), B.option_title (myphoto3)**, C.group_id (NULL), C.group_title (NULL)

Array 3:

A.item_id (NULL), A.item_title (NULL), **B.option_id (4), B.item_id (1), B.option_title (myphoto4)**, C.group_id (NULL), C.group_title (NULL)

)

(我标记为 NULL的字段也可能是EMPTY ,它会按照我的意愿完成工作)

我很绝望,我感到很愚蠢:(

如果有人足够聪明可以帮助我,那么请提前感谢。

0 个答案:

没有答案