我在PHP-mysql中有三个表
产品,product_fact,其实
架构是这样的
制品
ID,name (1000 records)
例如-
ID | name-------+--------1125 | key chain1135 | bikes1145 | cars
ID =具有不同的产品ID号,每个产品都有唯一的ID,
name =产品名称
product_fact
product_ID,fact_ID
product_ID =这与products表中的ID相同
fact_ID =这是事实ID每个产品都有一些事实,很多产品都有不止一个事实.
例如-
product_ID | fact_ID------------+----------1125 | 51125 | 71125 | 61135 | 81145 | 91145 | 2
事实
ID,name
ID = this is fact_ID与表product_fact中的相同
name =这是事实的名称.
例如-
ID | name--------+--------- 2 | black 8 | free 5 | sold 6 | coming soon 9 | new
现在我想选择与产品相关的特定事实名称,但是当我执行此查询时 – >
SELECT nameFROM factWhere ID = (SELECT fact_IDFROM product_factWhere product_ID='1125');
它说Subquery返回超过1行
但是,当我运行此查询时 – >
SELECT nameFROM factWhere ID = (SELECT fact_IDFROM product_factWhere product_ID='1135');
它给了我正确的输出:免费
我现在应该怎么做它应该显示其他产品的事实名称任何帮助,
还有什么我应该包括在我的查询..任何帮助最佳答案@H_502_90@使用子查询更安全,使用IN而不是=
SELECT name FROM fact Where ID IN (SELECT fact_ID FROM product_fact WHERE product_ID='1125');
或使用JOIN
SELECT disTINCT a.nameFROM fact a INNER JOIN product_fact b ON a.ID = b.fact_IDWHERE b.product_ID = '1125'
总结 以上是内存溢出为你收集整理的php – Sql从另一个查询中选择多个值全部内容,希望文章能够帮你解决php – Sql从另一个查询中选择多个值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)