从另一个表中选择带有主键的数据?
Posted
技术标签:
【中文标题】从另一个表中选择带有主键的数据?【英文标题】:SELECT data with primary keys from another table? 【发布时间】:2013-04-20 22:42:26 【问题描述】:我有一个“users”表、一个“offers”表和一个带有 userID 和 offerID 的联结“*users_offers*”。
如何从属于特定用户的优惠中选择每个优惠?
我可以实现一个解决方案(如下),它实际上从联结表中开始选择数据,然后简单地连接报价列,但结果也包含联结列。
SELECT *
FROM users_offers INNER JOIN offers ON users_offers.offerID = offers.ID
WHERE userID = 1
是否有任何解决方案以优惠开始选择?
【问题讨论】:
不要选择 *,只选择您需要的列。 【参考方案1】:使用SQL Alias:
SELECT o.*
FROM users_offers AS uo
INNER JOIN offers AS o ON uo.offerID = o.ID
WHERE uo.userID = 1
说明:
FROM users_offers AS uo
设置一个名为“uo”的新别名,指向 [users_offers] 表。 offers AS o
也是如此。这些别名可用于 SQL 语句的其他部分。
【讨论】:
哇,谢谢。其实我可以省略 users_offers 别名,只有 'o' 似乎就足够了。 是的,你可以,但我通常为所有用于使将来更改更容易的表设置别名。但这是一个品味问题。 我只是处于复杂性的早期阶段,所以像这样的考虑现在对我来说感觉开销很大。再次感谢,省去了我几个小时的谷歌搜索。 :D【参考方案2】:SELECT offers_alias.*
FROM users_offers
INNER JOIN offers AS offers_alias ON users_offers.offerID = offers_alias.ID
WHERE users_offers.userID = 1
【讨论】:
以上是关于从另一个表中选择带有主键的数据?的主要内容,如果未能解决你的问题,请参考以下文章