Mysql. Связанные таблицы. Ниче не пойму.

Печать RSS
277

О

Землянин
0
phpcoder, потому что соединить и объединить это разные вещи. Перечисление в секции FROM вообще плохой тон. в твоем запросе нельзя использовать ни левое ни правое объединение, только внутренние.
Если хочешь больше критики запости запрос на сайте gavnokod.ru))))
В

Чатланин
0
Опа, а куда 4 поста стерли? Aligan ну ты в чем то прав.. Во всяком случае я разобрался где и когда надо join ставить. Хотя мне это никогда не надо было.
Ps. Есть здесь нормальные кодеры.. Но большинство говнокодеры
A

Пришелец
0
Да гавнокодеры есть везде, в том числе и на самом говнокоде. Также утверждение telnet'а о том что парсер будет переносить запрос из ON в WHERE это полный бред равный нулю. Здесь вопрос больше дизайна и юзабилия кода касается. Я считаю что использование JOIN намного читабильнее и правильне, интуитивно понятнее. Я не представляю как нужно будет извращаться с запросомс "запятой", когда нужно будет объединить более 2 таблиц, а если еще типы объединения разные. Я пишу запросы в приложениях, где помиомо ещенужно обращаться к справочникам для создания сложных отчетов. Например вот один не самый сложный, но очень удачный пример где человек знающий операции JOIN легко может понять суть запроса
$sql = "
		SELECT
			{$PRE}lab_type_research.name,
			{$PRE}lab_markers.name_marker,
			{$PRE}lpu.name_lpu,
			{$PRE}lpu.lpu_id,
			{$PRE}lab_markers_values.id_type_research,
			{$PRE}lab_markers_values.marker_id,
			{$PRE}lab_markers_values.`values` AS status,
			count(*) AS col
		FROM
			{$PRE}lab_markers_values
		INNER JOIN
			{$PRE}lab_analyses ON  {$PRE}lab_analyses.number_research =  {$PRE}lab_markers_values.number_research
			AND   {$PRE}lab_analyses.id_type_research =  {$PRE}lab_markers_values.id_type_research
			AND  {$PRE}lab_analyses.data BETWEEN '{$data_first}' and '{$data_second}'
			{$where_lpu}
		INNER JOIN
			{$PRE}lab_markers ON {$PRE}lab_markers_values.marker_id = {$PRE}lab_markers.marker_id
		INNER JOIN
			{$PRE}lab_type_research ON {$PRE}lab_type_research.research_id = {$PRE}lab_markers_values.id_type_research
		INNER JOIN
			{$PRE}lpu ON {$PRE}lpu.lpu_id = {$PRE}lab_analyses.lpu_id
		GROUP BY
			{$PRE}lab_analyses.lpu_id,
			{$PRE}lab_markers_values.id_type_research,
			{$PRE}lab_markers_values.marker_id,
			{$PRE}lab_markers_values.`values`
		ORDER BY
			{$PRE}lpu.lpu_id";
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск