【发布时间】:2011-08-04 14:38:26
【问题描述】:
我正在使用 php 和 MySQL。我有两张桌子。我想从表 PARTS 中选择与表 PRODUCTS 中最近添加的记录具有相同 prod_name 的所有记录。
表PRODUCTS:
- id(自动递增)
- 产品名称
表PARTS:
- 产品名称
- part_name
- part_cost
这会起作用还是我应该使用某种联接?
SELECT * FROM parts WHERE prod_name = (SELECT prod_name FROM products ORDER BY id DESC LIMIT 1)
【问题讨论】:
-
执行查询时发生了什么?
-
我认为您所拥有的嵌套选择是一个很好的解决方案。
-
为什么在您的零件表中使用 prod_name 而不是 product_id??
-
prod_id 是在零件进入数据库时自动分配的。产品名称不会改变,所以它似乎是一个不错的解决方案。
-
如果您不打算使用该 ID,那为什么还要使用它呢?其他人都可以在他们的其他表中使用自动增量 ID 作为外键,顺便说一句。这很容易做到。 MySQL 返回 INSERT 查询后生成的最后一个自动增量的 ID...
mysql_insert_id()在 PHP... 以便您在插入后续相关行时可以使用它。