Я ищу способ сделать это, не перечисляя все имена полей и используя AS
для каждого.Может быть, это больше вопрос MySQL.Чтобы быть понятным, я предлагаю пример:
table1: users
+-id-+------name------+-preferred_moose_id-+-preferred_preparation_id-+
| 20 | Chester Chore | 1 | 3 |
| 72 | George Garnish | 2 | 2 |
| 88 | Liver Laddykin | 2 | 3 |
+----+----------------+--------------------+--------------------------+
table2: moose_types
+-id-+------name------+-------size------+---------------diet--------------+
| 1 | Canadian Moose | Pretty Big | Corn and snow |
| 2 | Red Moose | Not as big | Dolphins |
| 3 | Horses | Size of a horse | Oats, cheese, okra, and farmers |
+----+----------------+-----------------+---------------------------------+
table3: preparation_types
+-id-+-------name-------+-difficulty-+
| 1 | Boiled | 3 |
| 2 | Stuffed | 5 |
| 3 | Butterflied | 9 |
+----+------------------+------------+
Если у меня SQL такой:
SELECT users.*, moose_types.*, preparation_types.*
FROM users
INNER JOIN moose_types ON moose_types.id = users.preferred_moose_id
INNER JOIN preparation_types ON preparation_types.id = users.preferred_preparation_id
WHERE users.id = 88
А потом я выкидываю запрос, в итоге получается что-то вроде этого:
+---diet---+-difficulty-+-id-+-id-+-id-+------name------+------name------+------name------+-preferred_moose_id-+-preferred_preparation_id-+-------size------+
| Dolphins | 9 | 88 | 88 | 88 | Liver Laddykin | Liver Laddykin | Liver Laddykin | 2 | 3 | Not as big |
+----------+------------+----+----+----+----------------+----------------+----------------+--------------------+--------------------------+-----------------+
Обратите внимание, что данные перезаписываются / дублируются.Печень Ладдыкин не любит есть Печень Ладдыкин. Печень Ладдыкин, независимо от того, сложность 9 или нет.Это мера предосторожности, намеренно сделанная CF, и я могу понять, почему они так поступили.Однако должны быть способы избежать этого.Первым из которых будет использование оператора AS
в запросе и ручное перечисление всех имен полей.НО
Снова, я повторюсь: я хочу избежать перечисления всех полей вручную и использования AS
для каждого из них, поскольку это немного усложнит ситуацию, если это не сделать без перечисления полейи может быть применен либо Coldfusion, либо сделано MySQL.Если НЕТ решения, я в порядке, но я знаю, что я не эксперт по CF и , конечно, НЕ эксперт по MySQL.Пожалуйста, не стесняйтесь указывать на ошибки или что-то, что я пропускаю, даже если это кажется вам тривиальным.
ОБНОВЛЕНИЕ Спасибо пока комментаторам!К сожалению, изменение имен полей не является вариантом (хотя это определенно сработает).
Разъяснение фактического вопроса
То, что я ищу, так это то, что ColdFusion или MySQL могут дать мнеразные имена полей (и, следовательно, дифференцируемые) автоматически или программно, без необходимости вручную перечислять каждое из полей (даже пытаясь избежать использования cfloop, я знаю, что я делаю это сложно), и объявлять его с помощью AS
.
Я думаю, что там может быть какой-то продвинутый SQL, о котором я не знаю.