У меня есть несколько таблиц в базе данных MySQL, для которых большинство запросов SELECT ссылаются на столбец с одинаковым именем для одного и того же значения в каждой таблице.
Так, например, таблицы (bnsf, train_plan, train_type и operation_costs) будут ALL иметь поле с именем ' train_id '.
В зависимости от записи / строки значение в столбце train_id может быть равно 1, 2, 3, 4, 5 и т. Д. Но в большинстве случаев в запросе все желаемые результаты будут для записей. где эти значения соответствуют заданному значению, например « 2 ».
Итак, такой запрос работает:
SELECT * FROM (((bnsf
INNER JOIN train_plan ON bnsf.train_id = train_plan.train_id)
INNER JOIN train_type ON train_plan.train_id = train_type.train_id)
INNER JOIN operation_costs ON train_type.train_id = operation_costs.train_id)
WHERE bnsf.train_id = 2
AND train_plan.train_id = 2
AND train_type.train_id = 2
AND operation_costs.train_id = 2;
Есть ли более простой способ написания этого запроса (в частности, ГДЕ
пункт)? По сути, что-то вроде этого:
WHERE `train_id` IN TABLE(bnsf, train_plan, train_type, operation_costs) = 2;
// invalid syntax
Я бы хотел избежать использования AND, AND и AND - и повторения одного и того же значения для каждой таблицы. То, что у меня есть, работает, но выглядит не очень элегантно. Есть идеи?
Я потратил много времени на чтение других постов, но мне не нравятся предложения с профсоюзами и т. Д. (Кажется, не короче)