Ответ на 1-й вопрос: Вы можете использовать JOINS
в MySQL, который объединяет таблицу, как вы говорите.
Ответ на второй вопрос:
Один из способов:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1, table2
WHERE
table1.foreignkey = table2.primarykey
AND (some other conditions)
Второй способ:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1 INNER JOIN table2
ON table1.foreignkey = table2.primarykey
WHERE
(some other conditions)
Синтаксис WHERE
более реляционная модель ориентированных где INNER JOIN
- синтаксис ANSI, который вы должны использовать.
Первый запрос, использующий WHERE
, становится намного более запутанным, трудночитаемым и трудноподдерживаемым, если вам нужно начать добавлять в ваш запрос больше таблиц. Представьте, что вы делаете тот же запрос и тип соединения на четырех или пяти разных таблицах ... это кошмар.
Однако, в зависимости от оптимизатора запросов, они могут иметь такое же значение для машины.
Вы всегда должны указывать код для чтения.
То есть, если это встроенные отношения, используйте явное соединение. если вы согласны с слабо связанными данными, используйте предложение where
в результирующем наборе, полученном от JOINS
.
Надеется, что это помогает
Пожалуйста, укажите, почему -1 –
Не мою downvote, но 'JOIN', вероятно, неправильно; операция, необходимая для «нескольких таблиц с одинаковыми полями», - это 'UNION'. –
Да, нисходящая минута - моя и именно по этой причине. Ответ длинный, но пропуская точку полностью (путает объединения и союзы). – fdreger