【问题标题】:Left Join Specific Columns From Two Different Tables Using Alias使用别名从两个不同的表中左连接特定列
【发布时间】:2014-07-30 17:48:17
【问题描述】:

我有两张桌子:

玩具

item_id int(4) 无符号

item_desc varchar(100)

初始数量 int(4) 无符号

价格 十进制(5,2)

toy_purchases

item_id int(4) 无符号

客户名称 varchar(100)

数量 int(4) 无符号

购买日期 日期

仅使用别名,我将如何仅列出玩具表中的项目描述,以及来自 toy_purchases 的 customer_name 和 purchase_date(无论它们是否存在)。

我尝试了以下方法:

select b.book_name 
from books as b 
left outer join bc.customer_name, bc.purchase_date 
from book_customers as bc on b.bookid=bc.itemid; 

【问题讨论】:

  • 你在问如何使用左连接?有一个例子technet.microsoft.com/en-US/library/ms187518(v=sql.105).aspx
  • 你可能在关注:SELECT t.item_desc AS Description, tp.customer_name AS Customer, tp.purchase_date AS DatePurchased FROM toys t LEFT JOIN toy_purchases tp ON t.item_id = tp.item_id
  • @Linger 如果您能理解我的逻辑,我已经尝试过以下操作。从 book_customers 中选择 b.book_name 作为 b 左外连接 bc.customer_name,bc.purchase_date 从 book_customers 作为 b.bookid=bc.itemid 上的 bc;我需要尽可能使用别名,并且只显示我提到的列。 item_desc 来自玩具和 customer_name,purchase_date 来自 toy_purchases
  • 现在是时候了,你应该考虑学习基本的 SQL 语法。
  • @Rahul 我正在学习基本的 SQL 语法,这是一个测验问题。我从来没有被展示过如何使用别名从两个表中只选择某些列。

标签: mysql sql join alias


【解决方案1】:

这不是查询的正确语法。我想你实际上是在追求:

SELECT t.item_desc AS Description, 
       tp.customer_name AS Customer, 
       tp.purchase_date AS DatePurchased 
FROM toys t 
LEFT JOIN toy_purchases tp ON t.item_id = tp.item_id

【讨论】:

  • 没问题,我建议买一本关于 sql 的书通读一遍。
  • 花几个小时通读一遍,然后再继续。 w3schools.com/sql
  • @kzarns,这是一个糟糕的来源。如果你真的想将 OP 指向一些在线学习资源,那么将他指向 MySQL doc 或 SQLZoo 或 SQLCourse,但永远不要指向 w3schools。
【解决方案2】:

要使用别名仅使用 table2 中的特定列左连接 table1,我们可以这样做:

            SELECT 
              A.*, B.aThingIWant1, B.aThingIWant2
            FROM table1 A

            LEFT JOIN table2 B
            ON A.id = B.application_id
        

请注意,在加入表格时,您可以使用未选择的列。

要加入 3 个表,您可以这样做: 这将所有表 A 与所有表 B 连接起来 然后它从表 C 中加入 columnIWant

            SELECT 
              A.*, B.*, C.columnIWant
            FROM table1 A

            LEFT JOIN table2 B
            ON A.id = B.application_id

            LEFT JOIN table3 C
            ON A.id = C.application_id
        

【讨论】:

    猜你喜欢
    • 2020-01-28
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多