编辑MySQL连接查询的结果

时间:2012-10-15 03:09:44

标签: php mysql

我使用mysql连接三个表并在HTML表格中打印数据。我的查询如下:

SELECT nid, title, cid, lid, street, city, state, cat_name, cat_icon 
FROM 
    node 
    JOIN location USING(nid) 
    LEFT JOIN categories USING(cid) 
ORDER BY nid DESC LIMIT 10

然后我将数据打印到一个漂亮的HTML表格中。

这很适合显示我的数据,但我很好奇我如何编辑结果。基本上,企业在“节点”表中包含数据,在“位置”中包含地址信息。

我打算制作一个模态或内联编辑表单,但我很好奇你是如何更新数据的,因为它来自多个表格?

2 个答案:

答案 0 :(得分:4)

UPDATE node JOIN location USING(nid) LEFT JOIN categories USING(cid) 
SET    node.col1 = newvalue

如mysql手册中所述,多表UPDATE语句可以使用SELECT语句中允许的任何类型的连接,例如LEFT JOIN。

答案 1 :(得分:1)

[table_Business]  的 BusinessID  的节点ID  的 LocationID BUSINESSNAME BusinessDescription

[table_Node] 节点ID 节点名 NodeDescription

[table_Location] LocationID 地点名称 LocationDescription

表之间的关系允许您修改/删除/添加数据。关系由标识符(ID)决定。 在上面的例子中,主表是table_Business。一个企业有一个节点和一个位置,它在关系图中生成table_Node和table_Location辅助表。 对于一个企业,我们可以在所有三个表中拥有数据:table_business table_node,table_location,但即使数据传播,我们仍然可以修改/引用它,只要我们有东西可以识别它。这是businessID,nodeID或locationID发挥作用的地方。

通过了解 NodeID ,我们可以修改一个企业的一个特定节点。

通过了解 LocationID ,我们可以修改一个商家的一个特定位置。

通过了解 BusinessID ,我们可以修改一个特定业务,一个特定数据和一个业务的一个特定位置。

(基于BusinessID,我们可以通过从table_Business中选择它们来获取LocationID或NodeID。然后我们可以使用LocationID,NodeID分别修改table_Location,table_Node中的信息)


这是具有不同关系定义的相同数据

[table_Business]  的 BusinessID  的节点ID BUSINESSNAME BusinessDescription

[table_Node] 节点ID 节点名 NodeDescription

[table_Location] LocationID 的 BusinessID 地点名称 LocationDescription

请注意,此处已从table_Business中删除LocationID,并且businessID出现在table_Location中。 通过这样做,我们可以为企业提供多个位置。如果您要存储肯德基类型的业务,那么能够定义多个位置将会很有帮助。

通过了解 NodeID ,我们可以修改一个企业的一个特定节点。

通过了解 LocationID ,我们可以修改一个商家的一个特定位置。

通过了解 BusinessID ,我们可以修改一个特定的业务,一个业务的一个特定节点但不是一个特定的位置

(如果我们要使用BusinessID修改位置数据,我们最终会修改该业务的所有位置。在这种情况下我们需要LocationID)

  

A relation is defined as a set of tuples that have the same attributes. A tuple usually represents an object and information about that object. Objects are typically physical objects or concepts. A relation is usually described as a table, which is organized into rows and columns. All the data referenced by an attribute are in the same domain and conform to the same constraints. The relational model specifies that the tuples of a relation have no specific order and that the tuples, in turn, impose no order on the attributes. Applications access data by specifying queries, which use operations such as select to identify tuples, project to identify attributes, and join to combine relations. Relations can be modified using the insert, delete, and update operators. New tuples can supply explicit values or be derived from a query. Similarly, queries identify tuples for updating or deleting. It is necessary for each tuple of a relation to be uniquely identifiable by some combination (one or more) of its attribute values. This combination is referred to as the primary key.