
我在PHP-mysql中有三个表
产品,product_fact,其实
架构是这样的
制品
ID,name (1000 records)例如-
ID | name-------+--------1125 | key chain1135 | bikes1145 | carsID =具有不同的产品ID号,每个产品都有唯一的ID,
name =产品名称
product_fact
product_ID,fact_IDproduct_ID =这与products表中的ID相同
fact_ID =这是事实ID每个产品都有一些事实,很多产品都有不止一个事实.
例如-
product_ID | fact_ID------------+----------1125 | 51125 | 71125 | 61135 | 81145 | 91145 | 2事实
ID,nameID = 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条)