Вы можете объединить таблицы, используя UNION - см. Составные операторы выбора примерно на 3/4 вниз между SELECTS
SELECT * FROM table_Food UNION SELECT * FROM table_drinks
или
SELECT * FROM table_Food UNION ALL SELECT * FROM table_drinks
Оба будут работать одинаково, если только у вас не было напитка и еды с одинаковым названием, одинаковой ценой и одинаковым идентификатором. Без ВСЕХ повторяющихся строк будут опущены. Таким образом, UNION ALL безопаснее.
- Выше предполагается, что вы хотите, чтобы все столбцы.
- Обратите внимание, что количество столбцов для каждого выбора должно совпадать
- , но вы можете легконапример,
SELECT *,1 as extracolumn FROM table_Food
добавляет новый столбец к результату
IF вам нужно просто использовать одну таблицу table_data затем для загрузки данных из таблицы table_food и таблицы table_drinks в table_Data, которые вы можете использовать: -
INSERT INTO table_data (name,price) SELECT name,price FROM table_Food UNION ALL SELECT name,price FROM table_Drinks;
идентификаторы опускаются как первичный ключ, если значениябыли бы такими же, то вышеперечисленное потерпит неудачу из-за УНИКАЛЬНОГО конфликта ограничений
Скорее всего, будут двойные идентификаторы, поскольку у вас есть INTEGER PRIMARY KEY для столбца id. Это делает столбец псевдонимом столбца rowid (скрытый столбец), который имеет атрибут генерации значения, уникального для таблицы: сначала 1, затем 2, затем 3 (но не гарантируется). Ключевое слово AUTOINCREMENT добавляет дополнительный поворот в том, что уникальное значение должно быть больше, чем любое существующее или использованное.
Если вы хотите временно объединить все 3 таблицы, то вы можете использовать:-
SELECT * FROM table_Food UNION ALL SELECT * FROM table_drinks UNION ALL SELECT * FROM table_Data;
Если вы хотите объединить все три и знать, из какой таблицы вы можете использовать: -
SELECT *,'Food' FROM table_Food UNION ALL SELECT *,'Drinks' FROM table_drinks UNION ALL SELECT *,'Menu' FROM table_Data;
Демонстрация SQL Fiddle из вышеприведенного