Объединение 2 или более таблиц в php-mysql - PullRequest
0 голосов
/ 19 сентября 2011

Я хочу присоединиться к двум или более столам в моем проекте по управлению отелем, так каковы все шаги для объединения столов? Нужно ли указывать внешний ключ в каждой таблице, к которой нужно присоединиться, или работает без внешнего ключа?

Ответы [ 4 ]

1 голос
/ 19 сентября 2011

Шаги:

  1. Написать запрос JOIN . Вы сделали!

Вы можете JOIN использовать столбцы, которые не являются ни первичным, ни внешним ключом. Например.,

select *
from (select 'x' as a) t1
inner join (select 'x' as a) t2 on t1.a = t2.a

В запросе есть предложение JOIN и предложение ON. Предложение JOIN сообщает , что это за тип JOIN и какие таблицы JOIN ed. Предложение ON указывает, какие столбцы JOIN включены.

0 голосов
/ 19 сентября 2011

Я думаю, что для вашей ситуации (как объяснено в верхнем посте) было бы более разумно создать PHP-файл для извлечения данных гостя для каждой из таблиц в отдельности, поскольку, по крайней мере, мне кажется, что СОЕДИНЕНИЕ 6 таблиц вместе было бы слишком громоздким и не очень эффективным с практической точки зрения.

0 голосов
/ 19 сентября 2011

Простое объединение без избыточного вывода идентификатора:

SELECT * FROM foo JOIN bar USING (id);

Предполагается, что столбец id определен в обеих таблицах как первичные, следовательно, создается связьмежду таблицами, к которым вы хотите присоединиться.

Однако существуют различные типы объединений (естественные, прямые, левые, правые) в зависимости от ваших критериев и требований.Ознакомьтесь с руководством по MySQL API, оно предоставит вам достаточную информацию.

0 голосов
/ 19 сентября 2011

Нет, вам не нужно специально использовать внешние ключи, хотя вы, вероятно, будете использовать эквивалент.(обратите внимание, что движок по умолчанию MyISAM не поддерживает внешние ключи, если вы хотите их использовать, используйте InnoDB или $ otherEngine).

Для объединений я бы предложил прочитать документацию по объединениям .

...