Объяснение MySQL запроса с несколькими таблицами, перечисленными в FROM

Я знаю, что это полу-старое, но как насчет этого пути:

<DataTemplate x:Key="italComboWM">
    <TextBlock FontSize="11" FontFamily="Segoe UI" FontStyle="Italic" Text="--Select an item--" />
</DataTemplate>

<ComboBox EmptySelectionBoxTemplate="{StaticResource italComboWM}" />
-1
задан tadman 7 March 2019 в 02:45
поделиться

2 ответа

Поскольку вы не указали связь между a и b, это приводит к перекрестному произведению. Это эквивалентно:

SELECT *
FROM a
CROSS JOIN b
WHERE b.id IN (1, 2, 3)

Он объединит каждую строку в a с тремя выбранными строками из b. Если a имеет 100 строк, результат будет 300 строк.

0
ответ дан Barmar 7 March 2019 в 02:45
поделиться

То, что вы используете, это Multitable SELECT.

Multitable SELECT (M-SELECT) аналогичен операции соединения. Вы выбираете значения из разных таблиц, используете предложение WHERE, чтобы ограничить количество возвращаемых строк, и отправляете полученную в результате единственную таблицу обратно отправителю запроса.

Разница с M-SELECT заключается в том, что он возвращает таблицы умножения в качестве набора результатов.
Для получения дополнительной информации: https://dev.mysql.com/worklog/task/?id=358

Другими словами, вы запрашиваете является:

SELECT * 
FROM a 
CROSS JOIN b 
WHERE b.id in (1,2,3)
0
ответ дан Pankaj 7 March 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: