从子查询中选择具有相同名称的列

时间:2019-07-11 06:06:58

标签: mysql

两个表具有相同的名称ID,现在我想通过使用子查询上的where子句从子查询中获取两个ID列

这是具有两列p.id和s.id的查询

select name,price,total,user_id,id,id from(
SELECT p.name,p.price,s.user_id,s.id,p.id FROM products p,shoping_cart 
s where p.id=s.product_id
) z where z.user_id=11

1 个答案:

答案 0 :(得分:1)

首先,您可以尝试使用别名来代表这两列。

没有必要在查询中使用子查询,您可以尝试直接select对其进行访问。

我将使用join语法而不是,逗号来连接两个表,因为,的意思是CROSS JOIN是旧样式。

SELECT 
    p.name,
    p.price,
    s.user_id,
    s.id 'sid',
    p.id 'pid'
FROM products p JOIN shoping_cart s  on p.id=s.product_id
WHERE s.user_id = 11