[英]MYSQL Link, Joining two tables
我在MYSQL和使用JOIN方面的經驗非常有限,現在遇到了困難。
我有一個包含產品列表的主表。 每個產品都有多種屬性,例如顏色,尺寸,品牌(每個列/字段)。 我沒有存儲每個文本,而是使用number_id。
1. Yellow
2. Blue
3. Sony
4. Microsoft
5. Green
所以我有一個記錄
Name, Colour, Brand
Controller, 1, 3 = Controler, Yellow, Sony.
。
SELECT
product_data.id AS id,
product_data.title AS title,
product_data.compatability AS compatability,
product_data.release_date AS release_date,
product_data.colour AS colour,
product_data.brand AS brand,
product_data.type_accessory AS type_accessory,
product_data.created_userinfo AS created_userinfo,
product_data.created_timestamp AS created_timestamp
FROM product_data
INNER JOIN product_attributes
</code>
但我不確定從這一點上如何將“ AS colour”更改為等於文本“ YELLOW”而不是“ 1”
<code>
[id] => 13413
[title] => Controler
[compatability] =>
[release_date] => 2016
[colour] => 1
[brand] => 3
[type_accessory] => 54
[created_userinfo] => TEST-USER
[created_timestamp] => 1425476393
[category_main_id] => 4
[category_main_description] => Video Game Accessories
[category_sub_id] => 43
[category_sub_description] => Microsoft Xbox One
[colour1] => 1
</code>
我進行了以下更改,但是顏色為空值。 SELECT product_data.title AS title, colours.name AS colour
FROM product_data
INNER JOIN colours ON colours.id_colour = product_data.colour
WHERE
product_data.created_userinfo = 'TEST-USER'
ORDER BY
title
</code>
<code>
Array
(
[0] => Array
(
[title] => Controller
[colour] =>
[category_main] =>
[category_sub] =>
[brand] =>
)
[1] => Array
(
[title] => Controller Wifi
[colour] =>
[category_main] =>
[category_sub] =>
[brand] =>
)
)
</code>
您應該將屬性保留在每個不同的表中,例如:
CREATE TABLE colours(
id_colour int PRIMARY KEY,
name varchar(255)
);
在主表product_data的名為color的字段中,應保留顏色的ID。 然后您可以像這樣查詢:
SELECT
product_data.id AS id,
product_data.title AS title,
product_data.compatability AS compatability,
product_data.release_date AS release_date,
colours.name AS colour
FROM product_data
INNER JOIN colours ON colours.id_colour = product_data.colour
PS。 如果列名沒有沖突,則可以在查詢中保留表名。
SELECT
id AS id,
title AS title,
compatability AS compatability,
release_date AS release_date,
name AS colour
FROM product_data
INNER JOIN colours ON colours.id_colour = product_data.colour
編輯:
請記住,字段product_data.id_colour和colours.id_colour必須具有相同的數據類型-> int。
您必須定義一個名為color的表,並使用id和name列,然后您的查詢將如下所示:
SELECT
product_data.id,
product_data.title,
colour.name AS colour
FROM product_data
INNER JOIN colour ON colour.id = product_data.colour
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.