加入試想一下,你有一個像這樣的表:父母子女的ID
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | | |
| parent_id | int(11) | YES | MUL | NULL | |
+-------------+------------------+------+-----+---------+----------------+
讓我們把這個表locations
這代表着一個城市或國家。
例如,如果name
字段是Los Angeles
,則其parent_id將代表具有name
字段California
的行。
現在,假設你有另一個表是這樣的:
+-----------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(450) | YES | | NULL | |
| state | varchar(135) | YES | | NULL | |
+-----------------+---------------+------+-----+---------+----------------+
讓我們把這個表cities
。
每一行代表一個城市,id
字段與locations
表中的id
匹配。
在此表中,state
字段始終爲空,因此我想用locations
表中的name
字段對其進行更新。
我已經試過爲了得到state
值此查詢,但它似乎不工作(這需要很長的時間,沒有任何反應):
SELECT name FROM locations WHERE id IN
(SELECT parent_gid FROM locations INNER JOIN cities
ON locations.id = cities.id);
如何實現任何建議這個?
是不是從第二個表「城市」的信息完全多餘的第一個表?你爲什麼需要它? – Argeman
你說得很對。不幸的是,我無權更改數據庫模式。無論如何,這是一個抽象的例子,一旦解決將允許我解決更大的問題。 – rfc1484
表又如何相關?你想做什麼,更新或只選擇? –