查找SQL查询的替代方法

时间:2015-04-23 23:38:27

标签: mysql sql

好的所以我正在尝试,很难找到替代方法来完成相同的任务,我知道很多人会去,“为什么要改变它们,它们很好” ..作为一名初学SQL程序员,我想探索比目前更冒险的途径。

第一个查询应该找到表A中包含的所有A.names的列表,没有重复,其中包含B.color'Green'。

SELECT A.Name
FROM A
INNER JOIN B 
ON B.AID = A.AID 
WHERE B.Color = 'Green' 
GROUP BY A.AID

第二个查询应找到表B中所有元素的A.Names,B.Types和B.Colors列表,其中B.Price小于12.00。

SELECT A.Name, B.Types, B.Colors
FROM B 
INNER JOIN A 
ON A.AID = B.AID 
WHERE B.Price < '12.99' 
GROUP BY A.AID 

我在PHPMyAdmin中使用MySQL

〜感谢

-Edit-表A包含A.AID和A.Name,表B包含B.ID,B.AID,B.Type,B.Color&amp; B.Price

对于我可能造成的任何混淆感到抱歉

1 个答案:

答案 0 :(得分:1)

第一次查询

SELECT DISTINCT A.AID, A.Name
FROM A
INNER JOIN B 
ON B.AID = A.AID 
 AND B.Color = 'Green'

第二次查询

SELECT A1.Name, B.Types, B.Colors
FROM B 
INNER JOIN (
  SELECT DISTINCT AID, Name
  FROM A 
 ) A1
ON A1.AID = B.AID 
WHERE B.Price < 12.99