5
我在PHP MySQL的 产品,product_fact三个表,其实 架构是这样选择多个值SQL从另一个查询
产品
id , name (1000 records)
EG-
id | name
-------+--------
1125 | key chain
1135 | bikes
1145 | cars
id =有每个产品都有一个唯一的ID产品的不同ID号,
名 =产品名称
product_fact
product_id, fact_id
PRODUCT_ID =这是一样的id即产品表
fact_id =这是事实ID每个产品都有一些事实,许多产品有不止一个事实。
EG-
product_id | fact_id
------------+----------
1125 | 5
1125 | 7
1125 | 6
1135 | 8
1145 | 9
1145 | 2
事实
id , name
ID =此被fact_id相同表product_fact
名称 =这是事实的名称。
EG-
id | name
--------+---------
2 | black
8 | free
5 | sold
6 | coming soon
9 | new
现在我要选择与产品相关的特定事实的名字,但是当我执行这个查询 - >
SELECT name
FROM fact
Where id = (SELECT fact_id
FROM product_fact
Where product_id='1125');
它说子查询返回多个1行
但是,当我运行此查询 - >
SELECT name
FROM fact
Where id = (SELECT fact_id
FROM product_fact
Where product_id='1135');
它给了我正确的输出:免费
我应该怎么做,现在应该显示其实名的其他产品的任何帮助, 我应该有什么其他的我的查询,包括..任何帮助
及其与工作.. THX的人使用
IN
代替=
或 – iOSBee