代码之家  ›  专栏  ›  技术社区  ›  marc lincoln

在两个表中进行sql查询

  •  0
  • marc lincoln  · 技术社区  · 16 年前

    我想知道,是否可以生成一个sql查询,它的功能与 'select products where barcode in table1 = barcode in table2 '.我正在一个python程序中编写这个函数。调用该函数后,表将被永久联接还是在该函数运行时联接? 谢谢。

    6 回复  |  直到 8 年前
        1
  •  10
  •   Joel Coehoorn    16 年前
    SELECT t1.products
    FROM [Table1] t1
    INNER JOIN [Table2] t2 ON t2.barcode = t1.barcode
    
        2
  •  7
  •   cbrulak    16 年前

    我想你想加入两张桌子:

    http://www.w3schools.com/Sql/sql_join.asp

        3
  •  1
  •   Ryan Smith    16 年前

    类似于:

    SELECT * FROM table1 WHERE barcode IN (SELECT barcode FROM table2)
    

    这就是你要找的吗?

        4
  •  0
  •   Mohammed    16 年前
    SELECT table1.*, table2.* FROM table1 left join table2 on table1.barcode = table2.barcode
    
        5
  •  0
  •   Gary Kindel    16 年前

    下面是基于两个表中的公共字段内部联接两个表的示例。

    选择表1.产品 从表1 表1上的内部联接表2.barcode=表2.barcode 其中table1.products不为空

        6
  •  0
  •   dkretz    16 年前

    在这些情况下,有一种方法可以通过基于对象角色建模的表设计进行自我介绍。(是的,我意识到这只与问题间接相关。)

    你们有产品和条形码。产品由产品代码唯一标识(例如“A2111”;条形码由值唯一标识(例如1002155061)。

    产品有条形码。问题:产品可以没有条形码吗?同一产品能有多个条形码吗?多个产品可以有相同的条形码吗?(如果你有任何使用upc标签的经验,你知道所有这些答案都是正确的。)

    所以你可以做出一些断言:

    产品(代码)的条形码(值)为零或更多。
    条形码(值)有一个或多个产品(代码)。--假设:如果条形码与产品无关,我们就没有独立的存在。

    它直接(通过orm模型)指向一个包含两个表的模式:

    产品
    产品代码(PK)说明等

    产品条码
    产品代码(FK)条形码值
    --具有两部分自然主键productcode+barcodevalue

    你把它们联系在一起,就像其他答案中描述的那样。

    类似的断言可用于确定哪些字段进入设计中的各个表。