2015-08-25 5 views
-1

У меня есть запрос, который я использую для отображения данных из трех таблиц в dbgrideh. Поле Dbgrideh имеет поле. Когда я устанавливаю флажок, моя программа получает сообщение об ошибке с сообщением cannot insert data into triple table., как решить эту проблему?Вставить флажки в базу данных mysql

У меня есть три стола.

(имя таблицы) первая таблица имеет «идентификаторов, 'Поля Имени', 'адреса' со значением 1, 'INDAH', 'JAKARTA'

(таблица возраст) вторая таблица имеет поле 'ида' , 'name', 'age' со значением 1, 'indah', 10

(таблица классов) Третья таблица имеет поля 'idc', 'name', 'class' со значением 1, 'indah', 2

Я использую один запрос для выбора данных из трех таблиц:

SELECT NAME.name, age.age, class.class from name, age, class 

У меня есть ошибка, как этот Cannot update a complex query with more then one table

+0

Можете ли вы редактировать свой вопрос и добавить детали ошибки, запрос вы использовали и схему таблицы. – kristianp

+0

Вам нужно [join] (https://dev.mysql.com/doc/refman/5.0/en/join.html), что три таблицы основаны на 'id'. – luoluo

+1

Вы не получите описанную вами ошибку, запустив SELECT, который вы показываете, чтобы он не мог сгенерировать описанную вами ошибку. (SELECT не ОБНОВЛЯЕТ ни слова, поэтому в том, что вы описываете, нет * обновления сложного запроса * или даже * простого столбца.) Если вы хотите получить помощь, предоставьте фактическую информацию, в том числе UPDATE, которую вы пытаетесь чтобы завершить это, создавая ошибку. SELECT не обновляется. –

ответ

-1

Попробуйте это:

SELECT 
    name.name, age.age, class.class 
FROM 
    name 
JOIN 
    age 
ON name.ids=age.ida 
JOIN 
    class 
ON name.ids=age.idc 

Подробнее о Mysql JOIN


UPDATE:

вы не можете вставлять в несколько таблиц в одну команду MySQL. Однако вы можете использовать транзакции.

BEGIN; 
INSERT INTO users (username, password) 
    VALUES('test', 'test'); 
INSERT INTO profiles (userid, bio, homepage) 
    VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com'); 
COMMIT; 

Подробнее о Mysql Transations

+0

но как обновить с помощью флажка в этом dbgrideh? –

+0

Вы имеете в виду обновить значения трех таблиц на основе 'id'? – luoluo

-1

Вы можете использовать следующий запрос

SELECT a.ids, a.name, a.address, 
      b.ida,b.name , b.address, 
      c.idc,c.name,c.address 
    FROM table name a 
      INNER JOIN table age b 
       ON a.name = b.name 
      INNER JOIN table class c 
       ON a.name = c.name 
    WHERE a.name='indah' 
Смежные вопросы