我正在使用php和MySQL。我有两张桌子。我想从表PARTS
中选择与表PRODUCTS
中最近添加的记录具有相同prod_name的所有记录。
表PRODUCTS
:
表PARTS
:
这会起作用还是应该使用某种加入?
SELECT * FROM parts WHERE prod_name = (SELECT prod_name FROM products ORDER BY id DESC LIMIT 1)
答案 0 :(得分:1)
是的,它会起作用。您始终可以在phpmyadmin或MySql查询浏览器中执行查询以对其进行测试。
最好返回插入的id,然后选择使用该id。
答案 1 :(得分:0)
SELECT
parts.*
FROM
parts
INNER JOIN
products
ON
products.prod_name = parts.prod_name
WHERE
products.id = (SELECT MAX(id) FROM products)
答案 2 :(得分:0)
这应该有效 - 但如果产品有自动增量ID,为什么在prTS_name中使用prod_name作为外键?
如果用户想要更改prod_name,那么这样的设计会为您带来额外的工作(然后您必须通过并更改所有PARTS上的prod_name,除非您不介意它们失去连接)。
另外,它不是节省空间的(除非prod_name总是非常短)。