gpt4 book ai didi

mysql - SELECT 语句细化

转载 作者:行者123 更新时间:2023-11-29 03:08:33 24 4
gpt4 key购买 nike

在 MySQL 和关系数据库方面,我是一个新手,但我正在从事的一个项目要求我编写一些复杂的 SELECT 语句,我有点困惑这点。我有三个表,用于存储有关各种产品的信息。 Table1 存储每个产品的页面内容,table2 存储每个产品的具体标准(型号、 Material 、颜色等),table3 是一个链接表,用于在 T1 和 T2 之间建立多对多关系。

这是我的选择语句给我的:

Array
(
[name] => color
[value] => Red
[title] => Product 1
)
Array
(
[name] => material
[value] => Wood
[title] => Product 1
)

我很困惑如何选择既是“红色”又是“木头”的产品——基本上每个产品及其描述都有记录。

Array
(
[material] => Wood
[color] => Red
[title] => Product 1
)

SELECT 语句:

SELECT table2.name, table3.value, table1.title
FROM table2

INNER JOIN table3
ON table2.id=table3.varid

INNER JOIN table1
ON table1.id=table3.contentid

最佳答案

您必须再次加入其他表。您需要为表格起别名以区分它们:

SELECT table2.name, table3.value, table1.title, t3.value, t1.title
FROM table2
JOIN table3 ON table2.id=table3.varid and value = 'Wood'
JOIN table1 ON table1.id=table3.contentid
JOIN table3 t3 ON table2.id=t3.varid and value = 'Red'
JOIN table1 t1 ON t1.id=t3.contentid;

您可以将值测试放在 WHERE 子句中,但这种方式更有效,因为谓词是在进行连接时执行的,而不是之后对整个连接结果执行。

请注意,INNER JOINJOIN 的含义相同(隐含了 INNER)

关于mysql - SELECT 语句细化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com